scanf(\ printf(\ while(count<=n) {
tn=tn+a; sn=sn+tn; a=a*10; ++count; }
printf(\}
题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2
+3.编程找出1000以内的所有完数。
___________________________________________________________________
程序源代码: main() {
static int k[10]; int i,j,n,s;
for(j=2;j<1000;j++) { n=-1; s=j;
for(i=1;i { if((j%i)==0) { n++; s=s-i; k[n]=i; } } if(s==0) {
printf(\ for(i=0;i printf(\ printf(\ } } }
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,
求它在第10次落地时,共经过多少米?第10次反弹多高?
___________________________________________________________________
程序源代码: main() {
float sn=100.0,hn=sn/2; int n;
for(n=2;n<=10;n++) {
sn=sn+2*hn;/*第n次落地时共经过的米数*/ hn=hn/2; /*第n次反跳高度*/ }
printf(\printf(\
}
题目:一只猴子摘了N个桃子第一天吃了一半又多吃了一个,第二天又吃了余下的
一半又多吃了一个,到第十天的时候发现还有一个.
___________________________________________________________________
程序源代码:
/* 猴子吃桃问题 */ main() {
int i,s,n=1;
for(i=1;i<10;i++) {
s=(n+1)*2 n=s; }
printf(\第一天共摘了%d个桃\\n\}
迭代法求方程根
___________________________________________________________________
/* 迭代法求一个数的平方根 */
#define Epsilon 1.0E-6 /*控制解的精度*/ #include
float a,x0,x1;
printf(\请输入要求的数:\scanf(\x0=a/2;
x1=(x0+a/x0)/2;
while(fabs(x1-x0)>=Epsilon) {
x0=x1;
x1=(x0+a/x0)/2; }
printf(\的平方根:%f.5\\n\}
/* 上题的另一种算法 */
#define Epsilon 1.0E-6 /*控制解的精度*/ #include
float num,pre,this; do {
scanf(\输入要求平方根的数*/ }while(num<0); if (num==0)
printf(\ else {
this=1;
do {
pre=this;
this=(pre+num/pre)/2;
}while(fabs(pre-this)>Epsilon);/*用解的精度,控制循环次数*/ }
printf(\ }
用牛顿迭代法 求方程 2*x*x*x-4*x*x+3*x-6 的根 /* 牛顿迭代法 */
#define Epsilon 1.0E-6 /*控制解的精度*/ #include
float x1,x0=1.5;
x1=x0-(2*x0*x0*x0-4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3); while(fabs(x1-x0>=Epsilon) {
x0=x1;
x1=x0-(2*x0*x0*x0-4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3); }
printf(\方程的根为%f\\n\}
用二分法求上题 /* 二分法 */
#define Epsilon 1.0E-5 /*控制解的精度*/ #include
main() { folat x1,x2,x0,f1,f2,f0; x0=(x1+x2)/2;
f0=2*x0*x0*x0-4*x0*x0+3*x0-6; /* 求中点的函数值 */ while(fabs(f0)>=Epsilon) {
if(f0*f1<0) { x2=x0;
f2=2*x2*x2*x2-4*x2*x2+3*x2-6; }
if(f0*f2<0) { x1=x0;
f1=2*x1*x1*x1-4*x1*x1+3*x1-6; }
x0=(x1+x2)/2;
f0=2*x0*x0*x0-4*x0*x0+3*x0-6; }
printf(\用二分法求得方程的根:%f\\n\ }
题目:打印出如下图案(菱形) * *** ****** ******** ****** *** *
___________________________________________________________________
程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利
用双重for循环,第一层控制行,第二层控制列。
___________________________________________________________________
程序源代码: main() {
int i,j,k;
for(i=0;i<=3;i++) {
for(j=0;j<=2-i;j++) printf(\
for(k=0;k<=2*i;k++) printf(\ printf(\ }
for(i=0;i<=2;i++) {
for(j=0;j<=i;j++) printf(\
for(k=0;k<=4-2*i;k++) printf(\ printf(\ } }
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,
十位与千位相同。
___________________________________________________________________
程序分析:同29例
___________________________________________________________________
程序源代码: main( ) {
long ge,shi,qian,wan,x; scanf(\wan=x/10000;
qian=x000/1000; shi=x0/10; ge=x;
if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/ printf(\else
printf(\}
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,
则继续判断第二个字母。
___________________________________________________________________
程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语
句判断第二个字母。
相关推荐: