注册 登录
编程论坛 C语言论坛

请问为什么一维数组20个数字中的最小值算不出来

捡肥皂大王 发布于 2020-06-06 21:37, 2174 次点击
程序代码:
#include <stdio.h>
int main()
{
int i,sum,max,min;
int c[20];
max=c[0];
min=c[0];
sum=0;
printf("请输入20个数:");
for(i=0;i<20;i++)
{scanf("%d",&c[i]);
sum=sum+c[i];
if(c[i]>=max)
max=c[i];
if(c[i]<=min)
min=c[i];
}
printf("这些数的总和为%d\n",sum);
printf("最大值为%d\n",max);
printf("最小值为%d\n",min);
return 0;
}

只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2020-6-6 21:40编辑过]

8 回复
#2
捡肥皂大王2020-06-06 21:39
min也赋初值了 不知道为什么会是这个数字
想知道是什么问题 谢谢!!!

[此贴子已经被作者于2020-6-6 21:43编辑过]

#3
fulltimelink2020-06-06 22:39
max和min初始化应该放到c0被赋值后

int c[20]={0};
#4
forever742020-06-06 22:52
以下是引用fulltimelink在2020-6-6 22:39:21的发言:

max和min初始化应该放到c0被赋值后

int c[20]={0};


这样解决不彻底哦。
应该放在真的输入了c[0]以后。

程序代码:

#include <stdio.h>
int main()
{
int i,sum,max,min;
int c[20];
sum=0;
printf("请输入20个数:");
for(i=0;i<20;i++)
{scanf("%d",&c[i]);
sum=sum+c[i];
if(i==0)
max=min=c[0];
if(c[i]>=max)
max=c[i];
if(c[i]<=min)
min=c[i];
}
printf("这些数的总和为%d\n",sum);
printf("最大值为%d\n",max);
printf("最小值为%d\n",min);
return 0;
}


#5
fulltimelink2020-06-06 22:58
回复 4楼 forever74
嗯,是的,如果全是负数的情况下
学习了!
#6
捡肥皂大王2020-06-07 00:26
回复 4楼 forever74
谢谢不过请问为什么max和min的赋值是在for循环里呢这样的话不是每次都在和c[0]比较大小吗

[此贴子已经被作者于2020-6-7 00:33编辑过]

#7
捡肥皂大王2020-06-07 00:27
回复 3楼 fulltimelink
谢谢

[此贴子已经被作者于2020-6-7 00:33编辑过]

#8
吹水佬2020-06-07 07:04
int max=INT_MIN;
int min=INT_MAX;
#9
forever742020-06-07 07:57
以下是引用捡肥皂大王在2020-6-7 00:26:27的发言:

谢谢不过请问为什么max和min的赋值是在for循环里呢这样的话不是每次都在和c[0]比较大小吗


没看见它头顶的if么?
1