C语言数组问题

用数组从键盘输入10个整数,再找出数组中的最大数和最小数。为什么我的程序输出的结果总是不对(超过100之后,输出的值就错了)#include<stdio.h>voidma... 用数组从键盘输入10个整数,再找出数组中的最大数和最小数。
为什么我的程序 输出的结果总是不对(超过100之后,输出的值就错了)

#include <stdio.h>
void main()
{
int a[10],i,max,min;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
if(i==0)
max=min=a[0];
else{
if(min<a[i]) max=a[i];
if(max>a[i]) min=a[i];
}
}
printf("min=%d,max=%d\n",min,max);
}
展开
 我来答
千锋教育
2015-12-04 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
你的代码问题有以下几个:
1、min和max没有初始化
2、对于a[min]和a[max]没有做循环
参考代码如下:
#include <stdio.h>
main()
{
int a[10], i, min= 0, max=0;
for(i = 0; i < 10; i++) {
scanf("%d", a+i);
if(a[min] > a[i])
min = i;
else if(a[max] < a[i])
max = i;
}
printf("最大数是%d,下标是%d,最小数是%d,下标是%d\n", a[max], max, a[min], min);
}
天雨下凡
2015-12-04 · 知道合伙人教育行家
天雨下凡
知道合伙人教育行家
采纳数:17564 获赞数:65138
爱电脑、爱数学、爱音乐; 熟悉VB、C/C++、JAVA; EXCEL与VBA有所研究…… 数学,一些会,一些被忘却……

向TA提问 私信TA
展开全部
#include <stdio.h>
void main()
{
int a[10],i,max,min;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
max=min=a[0];
if(min>a[i]) min=a[i];
if(max<a[i]) max=a[i];
}

printf("min=%d,max=%d\n",min,max);
}
更多追问追答
追问
为什么我那样是错的?。。
追答
if(i==0)是什么意思?i从0到10,开始时i==0,此时max=min=a[0]???。

if(mina[i]) min=a[i];
上面两句大错,你自己好好分析一下你的逻辑。
还有你的min和max没有初始化,值不定。
一句话,算法混乱。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式