以下使用普通解法解决比大小问题:
输入某班级100个学生的成绩,统计超过平均分的的人数:
include
int main()
{
int score0, score1, score2, score3, score4, count = 0;
double avg = 0.0;
printf(“please input 5 score:”);
scanf_s(“%d”, &score0);
scanf_s(“%d”, &score1);
scanf_s(“%d”, &score2);
scanf_s(“%d”, &score3);
scanf_s(“%d”, &score4);
avg = avg + score0;
avg = avg + score1;
avg = avg + score2;
avg = avg + score3;
avg = avg + score4;
avg = avg / 5;
printf(“average is %.lf\n”, avg);
if (score0 > avg)count++;
if (score1 > avg)count++;
if (score2 > avg)count++;
if (score3 > avg)count++;
if (score4 > avg)count++;
printf(“the number is %d\n”, count);
return 0;
}
这种方法程序长度长,处理小范围的可以接受,但大范围的数据处理这种方法很低效。
用数组改写后:
include
int main()
{
int score[100];
int i, count = 0;
double avg = 0.0;
printf(“please input 100:”);
for (i = 0; i < 100; i++)
scanf_s(“%d”, & score[i]);
for (i = 0; i < 100; i++)
avg = avg + score[i];
avg = avg / 100.0;
printf(“the average is %.lf\n”, avg);
for (i = 0; i < 100; i++)
if (score[i] < avg)count++;
printf(“the number is %d\n”, count);
return 0;
}
该方法可以同时处理100个数据,更加高效。
2024.10.13