这道题使用变量循环赋值完全没问题,但是使用数组是总是导致数组越界,下面是我做好的一个数组实例,虽然能通过,但是我觉得并不够优秀,但经历几次修改,我实在优化不来。
描述
输入n个成绩,换行输出n个成绩中最高分数和最低分数的差。
输入描述:
两行,第一行为n,表示n个成绩,不会大于10000。
第二行为n个成绩(整数表示,范围0~100),以空格隔开。
输出描述:
一行,输出n个成绩中最高分数和最低分数的差。
#include <ctype.h>
#include <stdio.h>
//数组循环赋值法
int main()
{
int n;
int mark[n];
scanf("%d",&n);
int max = 0, min=100;
int score = 0;
int i =0;
for(i = 0;i < n;i++) //n个成绩
{
scanf("%d",&score);
mark[i] = score;
max = mark[i] > max?mark[i]:max; //判断最大
min = mark[i] < min?mark[i]:min; //判断最小
}
printf("%d",max - min);
return 0;
}

京公网安备 11010502036488号