本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。
输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。
#include<stdio.h> int main() { int i=1; int grade=0,total=0; int count=0; double average=0,N=0; scanf("%lf",&N); for(i=1;i<=N;i++){ scanf("%d",&grade); total=total+grade; average=1.0*total/N; if(grade>=60){ count++; } } printf("average = %.1f\n",average); printf("count = %d\n",count); return 0; }
第一:定义整型变量i=1,grade=0,total=0;定义浮点型变量average=0,N=0。
第二:输入所要统计的学生人数。
第三:使用for循环,使其循环输入成绩,并叠加成绩求平均值。在for循环中嵌套if语句,若成绩及格则使及格人数+1。
第四:输出平均数,并保留一位小数;输出及格人数。
一开始运行就发现成绩可以不断输入,不输出结果;
接着我判断是循环语句出现毛病;
于是进行调试;
经调试发现与想象的一样;
经过修改,成功输出结果。
因为这次经验,我发现,原来一个小小的错误就能使程序不能产生所预期的效果,以后应该更小心谨慎。
对于给定的正整数N,求它的位数及其各位数字之和。
一开始我是这么想的,在for循环语句中找额外两个数字来作为取余(eg:a=x%10),和
进位 (eg;b=x/10) 然后a=b , 接着在使用 sum=sum+a 求和, 接着就是位数的计算(count++)进行循环,但是又感觉哪里不对,想了想发现可以这么做{ for循环中 y=x%10; x=x/10; sum=sum+y;count++; }可以少定义一个变量;
最后就是输出位数count和位数和sum。
(自己应该多注意一下算法,学好了算法,相同功能的程序可以减少不少的代码。)
#include<stdio.h> #include<math.h> int main() { int x=0,y=0; int count=0,num=0; scanf("%d",&x); for(;x<=10^9&&x>0;){ y=x%10; x=x/10; num=num+y; count++; } printf("%d %d",count,num); return 0; }
运行了一下,结果正确
最后运行正确
本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入在一行中给出两个正整数M和N(1<=M<=N<=500)。
小抱怨(题目很简单,加上标点符号也就28个字,但是让我做了一个多小时才把这个题目写出来,不断的修改)
编程思路:
首先还是打出程序框架,定义变量,手动输入M,N,然后我把待会肯定会用到的循环放在条件语句if(1<=M<=N<=500)中,因为输入格式要求1<=M<=N<=500,接着我是这么想的,题目让我判断M到N的所有素数,于是我就先写一个小循环用来判断一个数是不是素数,并且在小循环前面先自己定义sb=1,假定它是素数,小循环如下( 如果这个数除以从2开始的数,都不等于0那么,就不会输出sb=0,即这个数不是素数),
for(i=2;i<=x/2;i++){
if(x%i==0){
sb=0;
break;
}
})
但是如果碰到M=1的情况那么就尴尬了,所以在小for循环内部我先写了一个条件if(M=1){M=2;}在遇到M=1的情况主动把2赋给M;接着就是在小for和遇到M=1的外面再套上一个for循环,使其将数从M开始不断判断到N,一个接一个;然后就再写一个条件语句将其和之前定义的sb配合起来使用,里面用count++;与sum=sum+x;来计算素数个数与素数的和,最后输出count与sum;结束。
编程代码:
#include<stdio.h> int main() { int M=0,N=0; int sum=0,count=0; int i=0,x=0; scanf("%d %d",&M,&N); if(1<=M<=N<=500){ if(M==1){ M=2; } for(x=M;x<=N;x++){ int sb=1; for(i=2;i<=x/2;i++){ if(x%i==0){ sb=0; break; } } if(sb==1){ count++; sum=sum+x; } } } printf("%d %d",count,sum); return 0; }
流程图:
于是我又进行修改,修改判断素数的小for循环,但是这次又多了一个毛病,1不是素数,程序也判断1为素数,
其他的没毛病
https://www.cnblogs.com/zduangduang/p/10022227.html
原文:https://www.cnblogs.com/159357www/p/10003543.html