C语言问题!很简单的题!

来源:百度知道 编辑:UC知道 时间:2024/06/16 22:29:45
输入20个数,求其的最大值和最小值以及平均值
#include "stdio.h"
void main()
{
int a,b,c,i,n,m=0,v,max,min;
printf("put in 20 numbers\n");
scanf("%d %d",&a,&b);
for(i=0;i<=17;i++)
{
scanf("%d",&c);
n=c;
m=m+n;
if(b>a)
{
if(c>b)
max=c;
else
max=b;
if(c<a)
min=c;
else
min=a;
}
if(b<a)
{
if(c>a)
max=c;
else max=a;
if(c<b)
min=c;
else min=b;

}
if(b==a)
{
if(c>a)
max=c;
else min=c;
if(c>b)
max=c;
else min=c;
}
}
v=(a+b+m)/20;
printf("%d %d %d",max,min,v);

我花了一点时间看懂了,程序格式么错,如此的复杂可看出你的心血,但是你的思路错了,你把后面的18个数一直与前2个数做比较,如果a=1,b=2的话,你输入18个数一直在与1和2做比较,后面18个数没有进行比较,也就是说最后2次的输入是18(第19个数)和3(第20个数),你的max是3,所以这个程序是失败的,不过别灰心,我也是初学者,只有知道自己哪里错了,以后才会注意~good luck!

说实话。。。直接没看懂,可能我水平有限吧
只是我觉得C语言的程序在写之前必须要有框架,而不仅仅是代码的罗列。输入20个数求你的要求,我和你的做法不一样,所以看不出错误了。IF嵌套的太多了。。