scanf在for循环中的输入问题!!!

今天调试的时候突然发现在用for循环给scanf输入的时候必须得多输入一个参数才能读取到前面的内容:

for (i = 0; i < n * m; i++) {
    scanf("%d ", &p[i]);
}

因为题目要求输入的内容要用" "隔开,我测试了好几次都是这样,真让人头秃,后来只能网上查查看有没有遇到同样问题的,结果发现是输入格式有问题。scanf是格式化输入语句,接收字符"%d "中有一个空格,导致我输入的每一个参数是(数字+空格)的格式,所以当我输完最后一个回车还没能结束循环,是因为还没有读取到最后一个(数字+空格),然后我想着既然是以空格结尾,那么我在最后输入两个空格试试能不能接受,结果是不行的,只有当我输入了数字之后才能结束循环,因为默认情况下会自带一个空格作为分隔符,所有这种情况我只能把”%d “中d后面的空格取消,让系统默认读取。

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 18:02
好不容易拿到了字节Offer,鼠鼠做后端的,但家里人觉得可能被裁员不稳定,让鼠鼠去投国企,现在好纠结到底该咋选
文档传偷助手:该投就投吧,不过建议别放弃offer 拿到手里的才是最好的
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
不要停下啊:大二打开牛客,你有机会开卷了,卷起来,去找课程学习,在牛客上看看大家面试笔试都需要会什么,岗位有什么需求就去学什么,努力的人就一定会有收获,这句话从来都经得起考验,像我现在大三了啥也不会,被迫强行考研,炼狱难度开局,啥也不会,找工作没希望了,考研有丝丝机会
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务