C语言定义一个数组,接受从键盘输入的20个学生成绩,求其平均分并统计其中的及格和不及格的人数及其占比
#include
int main()
{
int min = 0;
int max = 0;
int arr[20];
int i = 0;
scanf("%d", &arr[i]);
min = max = arr[0];
do
{
if(arr[i] > max)
max = arr[i];
if(arr[i] < min)
min = arr[i];
scanf("%d", &arr[++i]);
} while (i < 19);
if(arr[i] > max)
max = arr[i];
if(arr[i] < min)
min = arr[i];
printf("max is %d, min is %d", max, min);
return 0;
}
1、数组越界
2、找最大最小应该是每个都与最终的最大最小值比较的
如果不考虑特殊的输入值,可以给min和max初始值,代码会简单很多:
#include
int main()
{
int min = 100000000;
int max = 0;
int arr[20];
int i;
for(i = 0; i < 20; ++i)
{
scanf("%d", &arr[i]);
if(arr[i] > max)
max = arr[i];
if(arr[i] < min)
min = arr[i];
}
printf("max is %d, min is %d\n", max, min);
return 0;
}