统计指定数量学生的平均成绩与不及格人数
本题要求编写程序,计算学生们的平均成绩,并统计不及格(成绩低于60分)的人数。题目保证输入与输出均在双精度范围内。
输入格式:
输入在第一行中给出非负整数n,即学生人数。第二行给出n个非负实数,即这n位学生的成绩,其间以空格分隔。
输出格式:
average = 成绩均值
count = 不及格人数
其中平均值精确到小数点后两位,等号的左右各有一个空格。
输入样例1:
4
60 54 95 73
结尾无空行
输出样例1:
average = 70.50
count = 1
输入样例2:
0
结尾无空行
输出样例2:
average = 0.00
count = 0
#include"stdio.h"
main(){
int n;
scanf("%d\n",&n);
int count,i;
float average,a[n],sum;
scanf("%f",&a[n]);
sum=0;
count=0;
for(i=0;i<n;i++){
sum=sum+a[i];
}
average=sum/n;
for(i=0;i<n;i++){
if(a[i]>60){
count++;
}
}
printf("average = %.2f\n",average);
printf("count = %d",count);
}
双精度范围内,那不得用double吗?还有,数组长度能是变量?
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int count, i;
double average, a[n], sum;
for(i = 0; i < n; i++) {
scanf("%lf", &a[i]);
}
sum = 0;
count = 0;
for(i = 0; i < n; i++) {
sum = sum + a[i];
}
average = sum / n;
for(i = 0; i < n; i++) {
if(a[i] < 60) {
count++;
}
}
printf("average = %.2f\n", average);
printf("count = %d", count);
}
第一你不能用变量来定义数组长度,
第二你得用一个for循环来输入数组,scanf里是a[i]
第三count是不及格的人数,if 里应该是a[i]<60
#include"stdio.h"
int main(){
int n;
scanf("%d\n",&n);
int count,i;
float average,a[1000],sum;
for(i=0;i<n;i++)
scanf("%f",&a[i]);
sum=0;
count=0;
for(i=0;i<n;i++){
sum=sum+a[i];
}
average=sum/n;
for(i=0;i<n;i++){
if(a[i]<60){
count++;
}
}
printf("average = %.2f\n",average);
printf("count = %d",count);
}
你可以参考一下这个
除了上面的还有没写n=0的情况