某班的数学考试成绩如下:90.78.98.67.53.97.78.100.76.88,编程计算并输出该班的总人数、最高分、最低分和平均分
根据这个字符串,通过.分割,得到相应的数字和个数
运行结果:
代码:
#include <stdio.h>
int main()
{
char str[] = "90.78.98.67.53.97.78.100.76.88";
int a[100], i=0, n = 0;
int t = 0;
int max, min;
float ave = 0;
while (str[i] != '\0')
{
if (str[i] >= '0' && str[i] <= '9')
t = t * 10 + (str[i] - '0');
else
{
a[n] = t;
n++;
t = 0;
}
i++;
}
if (t > 0)
a[n++] = t;
printf("总人数:%d\n",n);
max = min = a[0];
for (i = 0; i < n; i++)
{
ave += a[i];
if (a[i] > max) max = a[i];
if (a[i] < min) min = a[i];
}
printf("最高分:%d\n", max);
printf("最低分:%d\n", min);
printf("平均分:%.2f\n", ave / n); //保留2位小数
return 0;
}
#include <stdio.h>
int main(){
int num=0;
int max,min;
float sum=0, avg;
int score[20] = {90,78,98,67,53,97,78,100,76,88};
for (int i=0;i<20;i++){
if(score[i]!=0){
num += 1;
}
}
printf("总人数为%d\n",num);
max=score[0],min=score[0];
for (int i=0;i<num;i++){
sum+=score[i];
if(max<score[i]){
max = score[i];
}
if(min>score[i]){
min = score[i];
}
}
avg = sum/num;
printf("最高分为:%d,最低分为:%d,平均分为:%.2f\n",max,min,avg);
}