郑州周宇简历:C语言哪里错拉?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 22:19:12
#include <stdio.h>
main ()
{
int a[20],max,min,vag,i,j,k,l=0,m;
printf("请输入20个数:\n");
for(m=0;m<20;m++)
scanf("%d",&a[m]);
for(i=0;i<20;i++)
if(a[i]>a[i+1]) max=a[i];
printf("最大值:%d",max);
for(j=0;j<20;j++)
if(a[j]<a[j+1]) min=a[j];
printf("最小值:%d",min);
for(k=0;k<20;k++)
l=a[k]+l;
vag=l/20;
printf("平均值:%d",vag);
}

楼上的正解!
而且max 和min 要初始化为0;要不然有时会出错.

for(i=0;i<20;i++)和for(j=0;j<20;j++)超出边界值了。
当i=19时 a[i+1]=a[20] 就不对了。

错误有:
一:vag应该是float型的
二:求最大,最小值也错了,超出了数组.
正确程序如下:
#include <stdio.h>
main ()
{
int a[20],max,min,i,j,k,l=0,m;
float vag;
printf("请输入20个数:\n");
for(m=0;m<20;m++)
scanf("%d",&a[m]);
max=a[0];
for(i=1;i<20;i++)
if(a[i]>max) max=a[i];
printf("最大值:%d\n",max);
min=a[0];
for(j=1;j<20;j++)
if(a[j]<min) min=a[j];
printf("最小值:%d\n",min);
for(k=0;k<20;k++)
l=a[k]+l;
vag=l*1.0/20;
printf("平均值:%d\n",vag);
}