C语言用for循环和scanf输入数组 程序出错,停止工作

for(i=0;i<n;++i){scanf("%d",k[i]);}... for(i=0;i<n;++i)
{scanf("%d",k[i]);}
展开
 我来答
乌金生宣碧
2020-02-14 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:34%
帮助的人:1061万
展开全部
你最后maing函数的输入不对,因为此时i和j分别是3和4,数组已经越界。
hydonlee
2011-04-08 · TA获得超过590个赞
知道小有建树答主
回答量:859
采纳率:0%
帮助的人:435万
展开全部
scanf要使用的是地址。。。需要在k[j]之前加上“取地址”符号 &

for(i=0;i<n;++i)
{scanf("%d",&k[i]);}
更多追问追答
追问
数组不是不需要使用&吗
追答
使用%s输入字串时,字串使用char [] 是不需要使用&的。传入的也是数组的首地址(没有指定索引)。想想是不是这样:
char s[20];
scanf("%s", s); //s是数组首地址,其实就是char *类型

对照上例,如果你使用:
scanf("%d", k);
应该是可以的,只是k是int数组,而k又不变化,所以你循环n次都会写入到k[0].
当然,你可以使用指针操作:
scanf("%d", k+i);

试一下?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冰棒之恋
2011-04-08 · 超过22用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:49.9万
展开全部
for(i=0;i<n;i++)
scanf("%d",k[i]);

不行的话,把整个代码发过来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
250431615
2011-04-08 · TA获得超过635个赞
知道小有建树答主
回答量:384
采纳率:0%
帮助的人:232万
展开全部
改、、!
scanf("%d",&k[i]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sadman000
2011-04-08 · TA获得超过1032个赞
知道答主
回答量:96
采纳率:0%
帮助的人:84.5万
展开全部
k[i]前加&
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式