求平均成绩: 2、输出100以内的平方根表 3、找出所有的水仙花数 4、求出小球走过的路程和最后的落地高度。 1、求平均成绩: #include <stdio. h> void main() float average=0.0; printf("n n=?"); scanf("%d", &n); for(il; i<=n; i++) printf("In please input the score of the %d studentin", i); scanf("%『",&sore);/*输入学生成绩 if(core<0.0‖core>1000)/判断成绩的合法性 continue: }/“如果不加此次的错误成绩,i也不能计数,-1再+1相当于没有计数,所以先减 然后再继续下一次循环,本次的下一句没有执行 sum + score /求成绩之和* average=(noat)sum/n;求平均成绩,在循环结束后 printf("In average =%f", average 下边的程序也可:(尤其注意对数据的合法性进行判断的改动 #include <stdio. h> nau score, average- printf( scanf("%d", &n); for(i=l; i<=n; i++) i printf("\n please input the score of the %d student\n", i scanf("%r",& score);/输入学生成绩 }whie(!( score<.0‖ score>100.0);/判断成绩的合法性:不只判断一次,还判断多 次,考虑到正确才停止输入,下边再加 sum + score 求成绩之和
1、求平均成绩: ............................................................................................... 1 2、输出 100 以内的平方根表。.......................................................................... 2 3、找出所有的水仙花数..................................................................................... 2 4、求出小球走过的路程和最后的落地高度。 ..................................................... 3 1、求平均成绩: #include <stdio.h> void main( ) { int i,n; int sum=0,score; float average=0.0; printf("\n n=?"); scanf("%d",&n); for(i=1;i<=n;i++) { printf("\n please input the score of the %d student\n",i); scanf("%f",&score); /* 输入学生成绩 */ if((score<0.0 || score>100.0)) /* 判断成绩的合法性 */ { --i; continue; } /*如果不加此次的错误成绩,i 也不能计数,-1 再+1 相当于没有计数,所以先减, 然后再继续下一次循环,本次的下一句没有执行*/ sum += score; /* 求成绩之和 */ } average = (float)sum/n; /* 求平均成绩,在循环结束后 */ printf("\n average =%f", average); } 下边的程序也可:(尤其注意对数据的合法性进行判断的改动) #include <stdio.h> void main( ) { int i,n; float sum=0,score, average=0.0; printf("\n n=?"); scanf("%d",&n); for(i=1;i<=n;i++) { do { printf("\n please input the score of the %d student\n",i); scanf("%f",&score); /* 输入学生成绩 */ }while(!(score<0.0 || score>100.0)); /* 判断成绩的合法性:不只判断一次,还判断多 次,考虑到正确才停止输入,下边再加 */ sum += score; /* 求成绩之和 */ }
average sum/n: /*求平均成绩* printf("n average=%f", average 2、输出100以内的平方根表 #include <stdio. h> #include <math. h void maino Int m, n for(m=0: m <10: m+ printf("%7d", m) /打印表头* printf("\n); for(n=0;n<10;n++) /乘数n从1变化到9* printf("%d", n) /*输出每行的开头数字* for(m=0;m<10;m++) 被乘数m从1变化到9* printf("%4.3f, sqrt(n*10+ m)); /输出第m行n列中的值 printf("\n); 八输出换行符准备打印下一行* 3、找出所有的水仙花数 这是典型的穷举题,有两种方式: 种是对所有数位进行穷举,例如: #include<stdio. h> void maino int i, j, k, m,n for(i=1; 1<=9; 1++) for(=0J<=9J++) for(k=0;k<=9k++) n=100*计10+j+k/得到一个三位数* n*计+k*k*k,/*求每一个数位的立方和* n==n) printf("m=%d", m)
average = sum/n; /* 求平均成绩 */ printf("\n average =%f", average); } 2、输出 100 以内的平方根表。 #include <stdio.h> #include <math.h> void main() { int m, n; for (m = 0; m < 10; m++) { printf("%7d", m); /*打印表头*/ } printf("\n"); for (n = 0; n < 10; n++) /*乘数 n 从 1 变化到 9*/ { printf("%d", n); /*输出每行的开头数字*/ for (m = 0; m < 10; m++) /*被乘数 m 从 1 变化到 9*/ { printf(" %4.3f ", sqrt(n * 10 + m)); } /*输出第 m 行 n 列中的值*/ printf("\n"); /*输出换行符,准备打印下一行*/ } } 3、找出所有的水仙花数 这是典型的穷举题,有两种方式: 一种是对所有数位进行穷举,例如: #include<stdio.h> void main() { int i,j,k,m,n; for(i=1;i<=9;i++) { for(j=0;j<=9;j++) { for(k=0;k<=9;k++) { m=100*i+10*j+k;/*得到一个三位数*/ n=i*i*i+j*j*j+k*k*k; /*求每一个数位的立方和*/ if(m==n) printf("m=%d",m);
另一种就是对三位数穷举: nt i,j, k, m, n for(m=100,m<=999计++) 1=m%10;/得到m的个位* J=m/100;/*得到m的百位* K=(m-m/100*100)/10,/得到m的十位* n*计十j+k*k*k,/*求每一个数位的立方和* if(m==n printf("m=%d",m); 4、求出小球走过的路程和最后的落地高度 γ编程实现:小球碰撞10次所经过的路程和最后一次上升的高度* #include<stdio. h> #defineN 10 void maino float distance. height=100 for(i=1, distance=-100i<N+)/*将第一次落地之前的距离存入到 distance里,后边循环 里计算从第1次落地到第10次落地所走过的路程,期间弹起了9次* height=2,/*高度是原来的一半* distance+=2* height;/将每一次弹起到下一次落地走过的距离计入总路程* printf("小球碰撞%d次所经过的路程:%2fnln",N, distance) printf("第%d次落地后上升的高度是%2fn", N, heigh2) 下边是某同学交的作业:它是在循环中计算了10次,但初值刨去了下落之前的半次 #include<stdio. h> float sum=- 100h=1(
} } } } 另一种就是对三位数穷举: #include<stdio.h> void main() { int i,j,k,m,n; for(m=100;m<=999;i++) { I=m%10; /*得到 m 的个位*/ J=m/100; /*得到 m 的百位*/ K=(m-m/100*100)/10; /*得到 m 的十位*/ n=i*i*i+j*j*j+k*k*k; /*求每一个数位的立方和*/ if(m==n) printf("m=%d",m); } } 4、求出小球走过的路程和最后的落地高度。 /*编程实现:小球碰撞 10 次所经过的路程和最后一次上升的高度*/ #include<stdio.h> #define N 10 void main() { int i; float distance, height=100; for(i=1, distance=100;i<N;i++)/*将第一次落地之前的距离存入到 distance 里,后边循环 里计算从第 1 次落地到第 10 次落地所走过的路程,期间弹起了 9 次*/ { height/=2; /*高度是原来的一半*/ distance +=2*height;/*将每一次弹起到下一次落地走过的距离计入总路程*/ } printf("小球碰撞%d 次所经过的路程:%.2f\n \n",N,distance); printf("第%d 次落地后上升的高度是%.2f\n",N,height/2); } 下边是某同学交的作业:它是在循环中计算了 10 次,但初值刨去了下落之前的半次。 #include<stdio.h> void main() { float sum=-100,h=100; int i=1;
d sum=sum +2*h h=h/2 while(i<=10) printf("sum=%f, h=%f",sum, h);
do { sum=sum+2*h; h=h/2; i++; } while(i<=10); printf("sum=%f,h=%f",sum,h); }