运行结果有点怪异,怎么修改
随机生成300个[1,100]的整数,将其转换为五级制(优、良、中、及格和不及格)的评定等级,然后统计各个等级人数。
要求:偶数的平均值用ave1表示偶数的个数cnt1表示
奇数的平均值用ave2表示奇数的个数cnt2表示
#include <stdio.h>
int main(void)
{
int i, sum1 = 0, sum2 = 0, cnt1 = 0, cnt2 = 0;
float ave1, ave2;
for (i = 1; i <= 100; i++)
{
if (i % 2 == 0)
{
cnt1++;
sum1 += i;
}
else
{
cnt2++;
sum2 += i;
}
}
ave1 = (float)(sum1) / (float)(cnt1);
ave2 = (float)(sum2) / (float)(cnt2);
printf("偶数的平均值为%f, 个数为%d\n", ave1, cnt1);
printf("奇数的平均值为%f, 个数为%d\n", ave2, cnt2);
return 0;
}
针对给出的问题,可以采取以下步骤解决:
1.添加头文件 #include 2.利用rand()函数生成在1-100之间的数字,并存储到一个数组中: int num[300]; for(int i=0; i<300; i++) { num[i] = rand() % 100 + 1; } 3.根据题目要求将生成的数字转换为五级制的评定等级,并统计各个等级的人数: int count[5] = {0}; //count数组用于记录各个等级的人数,初始值都为0 for(int i=0; i<300; i++) { if(num[i] >= 90) { count[0]++; } else if(num[i] >= 80) { count[1]++; } else if(num[i] >= 70) { count[2]++; } else if(num[i] >= 60) { count[3]++; } else