c语言的循环输入问题

输入一字符串,存入tt中并将所有下标为奇数位置上的字母转换为大写字母(若该位置上不是字母,则不转换)并将结果输出到屏幕。为什么要asdasd0这样输入,不能这样输入asd... 输入一字符串,存入tt中并将所有下标为奇数位置上的字母转换为大写字母(若该位置上不是字母,则不转换)并将结果输出到屏幕。

为什么要asdasd0这样输入,
不能这样输入
a
s
d
a
s
d
0
记得之前的循环输入都是每输入一个就回一次车的,小弟不才,求细心回答。。。。。。
展开
 我来答
linccn
推荐于2016-04-05 · 超过67用户采纳过TA的回答
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:101万
展开全部

根本原因是你调用scanf用的是

scanf("%c", &tt[i])

上面格式"%c"要求每次输入并接收一个字符,asdasd0输入的话就是正确的,而如果是

a

s

d

这样就会连你输入的回车也作为一次输入,这恐怕不是程序期望的。

所以根本原因是scanf的书写格式。


如果是要求输入一个整数,可以用

scanf("%d", &v);

这个时候就既可以输入:1 2 3 4,也可以是

1

2

3

4

duhongzhi2010
2014-12-01
知道答主
回答量:2
采纳率:0%
帮助的人:2586
展开全部
你下面这种输入把换行符也输进去了,换行符也是一个字符,等于就是你字符数组的奇数位上全都是换行符了,刚好输出的时候换行符不属于‘a'和’z'之间,也就没有变化,刚好成了你输出的换行。(你本身写的代码是没有换行的,但你下面这种输出却换行了,很明显就可以看出猫腻)。嗯就是这样,望采纳!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5aec452
2014-12-01 · TA获得超过152个赞
知道答主
回答量:42
采纳率:0%
帮助的人:17万
展开全部
首先回车,'\n'也算一个字符,其次和你所用scanf有关系
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-12-01
展开全部
回车,'\n'也算一个字符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式