简单C语言,程序显示没错误,但是总是运行不出来,为什么呢?

#include<stdio.h>voidmain(){intmax,num[6],i;printf("请输入6个数字:\n");scanf("%d%d%d%d%d%d"... #include<stdio.h>
void main()
{
int max,num[6],i;
printf("请输入6个数字:\n");
scanf("%d %d %d %d %d %d",&num[i]);
for(i=1;i<=6;i++)
{
if(max<num[i])
max=num[i];
}
printf("the max num is %d\n",max);
}
展开
 我来答
愈曦曲惜
2020-01-28 · TA获得超过3892个赞
知道大有可为答主
回答量:3112
采纳率:34%
帮助的人:173万
展开全部
你只定义了6个数组,可是你用了7个元素,已经越界溢出了。你把循环改成这样就OK了。
for(i=1;i<6;i++)
C/C++语言定义的数组是不包括本身元素,而且是从零元素开始,即你定义的应该是:
num[0],num[1],num[2],num[3],num[4],num[5];
并不包括num[6]。因此,你就会出错。
编译器只能检测你的语法有没有问题,并不能检测隐藏的问题。所以学C语言要非常小心。
阿金纪实录
2012-03-19 · TA获得超过766个赞
知道小有建树答主
回答量:250
采纳率:100%
帮助的人:125万
展开全部
你只定义了6个数组,可是你用了7个元素,已经越界溢出了。你把循环改成这样就OK了。
for(i=1;i<6;i++)
C/C++语言定义的数组是不包括本身元素,而且是从零元素开始,即你定义的应该是:
num[0],num[1],num[2],num[3],num[4],num[5];
并不包括num[6]。因此,你就会出错。
编译器只能检测你的语法有没有问题,并不能检测隐藏的问题。所以学C语言要非常小心。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沙叡斯尔阳
2019-11-25 · TA获得超过3624个赞
知道大有可为答主
回答量:3067
采纳率:26%
帮助的人:224万
展开全部
明显的错误嘛,scanf()前面6个%d,需要分配6个int的,你后面只有一个num,运行的话会出现段错误,改成:
{
int
max,num[6],i;
printf("请输入6个数字:\n");
for(i=0;i<6;i++)
scanf("%d",num[i]);
max=num[0];
for(i=1;i<=6;i++)
{
if(max<num[i])
max=num[i];
}
printf("the
max
num
is
%d\n",max);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tangjikui0232
2012-03-19 · 超过11用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:32万
展开全部
明显的错误嘛,scanf()前面6个%d,需要分配6个int的,你后面只有一个num,运行的话会出现段错误,改成:
{
int max,num[6],i;
printf("请输入6个数字:\n");
for(i=0;i<6;i++)
scanf("%d",num[i]);
max=num[0];
for(i=1;i<=6;i++)
{
if(max<num[i])
max=num[i];
}
printf("the max num is %d\n",max);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ad8bb83
2012-03-19 · TA获得超过4259个赞
知道大有可为答主
回答量:1469
采纳率:100%
帮助的人:1630万
展开全部
1.scanf("%d %d %d %d %d %d",&num[i]);
改成:
for(i=0;i<6;i++)
scanf("%d",&num[i]);
2.for(i=1;i<=6;i++)改成for(i=0;i<6;i++)
数组下标是从0开始的,=6就越界了
追问
但是有的程序我写for(i=1;i<=6;i++)从1开始也可以的,是不是规定要从0开始?
追答
可以运行,但是输出的数值不对,比如你输入1 2 3 4 5 6
按照你的写法,1被略过了,最后一个数值是随机的,输出可能是2 3 4 5 6 某值

数组规定,下标从0开始,比如 int a[10],访问时,只能是a[0]到a[9],不能到a[10],不然就数据溢出了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式