c语言的循环输入问题

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

为什么要asdasd0这样输入,
不能这样输入
a
s
d
a
s
d
0
记得之前的循环输入都是每输入一个就回一次车的,小弟不才,求细心回答。。。。。。

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

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

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

a

s

d

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

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


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

scanf("%d", &v);

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

1

2

3

4

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-01
你下面这种输入把换行符也输进去了,换行符也是一个字符,等于就是你字符数组的奇数位上全都是换行符了,刚好输出的时候换行符不属于‘a'和’z'之间,也就没有变化,刚好成了你输出的换行。(你本身写的代码是没有换行的,但你下面这种输出却换行了,很明显就可以看出猫腻)。嗯就是这样,望采纳!本回答被网友采纳
第2个回答  2014-12-01
首先回车,'\n'也算一个字符,其次和你所用scanf有关系
第3个回答  2014-12-01
回车,'\n'也算一个字符

c语言中多次输入的问题如何解决
在C语言中处理多次输入的问题,通常依赖于循环结构(如`for`循环、`while`循环或`do-while`循环)结合输入函数(如`scanf`)来实现。关键在于如何控制循环的继续或终止,这通常依赖于输入数据的性质或特定条件。对于简单的多次输入,如读取一系列整数直到输入某个特定值(如-1)为止,可以使用`while`循环...

c语言中数据输入错误了如何提示输入错误并实现要求重新输入
在C语言编程中,当用户输入错误时,需要一个机制来提示错误并要求用户重新输入。为此,可以使用一个无限循环,如下面的代码所示:while (1) { printf("请输入内容,输入错误时将提示并要求重新输入\\n");} 在这个循环内部,程序会不断地请求用户输入,并检查输入的有效性。如果输入无效,程序会输出一条...

c语言中数据输入错误了如何提示输入错误并实现要求重新输入
如果读取失败,即`scanf()`返回值不等于1,表示输入的格式不正确,程序将打印错误提示并要求用户重新输入。为了防止错误的输入对下一次的输入造成影响,我们使用`getchar()`函数清除输入缓冲区中的任何字符,然后使用`continue`语句继续下一次循环,直到输入正确为止。通过这种方式,程序可以确保用户输入的数据...

c语言中多次输入的问题,如何解决?
1、使用for循环:可以使用for循环来指定要输入的次数。例如,如果需要输入5个整数,可以使用如下代码:c int num;for (int i = 0; i < 5; i++) { printf("请输入第 %d 个整数:", i+1);scanf("%d", &num); \/\/ 进行相应的处理 } 2. 使用while循环:可以使用while循环来反复输入,直...

c语言 scanf(%d,a);输入字符为什么会进入死循环?
只要缓冲区有字符,scanf就要去读,一读不是数字,它就跳过,试图等到输入缓冲区没有字符了才等待你输入……如此反复,当然就“死循环”了。为了验证,你在printf(you lose!!n);后加一句getchar();,把缓冲区里的那个非数字字符接收掉,看看还会不会是“死循环”?

c语言 循环题目
你可以用 break 和 goto 来退出 for 循环。循环变量 v 是一个循环内部的局部变量; 如果你需要在循环结束后使用这个值, 在退出循环前把它赋给另一个变量。2.通用形式的 for 通过一个叫作 迭代器 的函数工作。 每次迭代,迭代器函数都会被调用以产生一个新的值, 当这个值为 nil 时,循环停止...

C语言循环输入一个学生5门课程的成绩,计算所有大于60分课程成绩的平均分...
int a, b = 0, c = 0;float d;int i = 1, j = 0;while (i <= 5) { printf("请输入第%d门成绩:\\n", i);scanf("%d", &a);i++;b += a; \/\/ 统计所有课程的总分 if (a > 60) { c += a; \/\/ 统计大于60分课程的总分 j++; \/\/ 统计大于60分的课程数 } } d...

C语言编写程序从键盘任意输入n个实数,用do-while循环语句求最大值、最...
你好!以下是一个C语言程序,使用do-while循环语句从键盘任意输入n个实数,并计算出其中的最大值和最小值:include <stdio.h> int main() { int n, i = 0;float num, max, min;printf("请输入要输入的实数个数n: ");scanf("%d", &n);do { printf("请输入实数: ");scanf("%f", ...

c语言 为什么循环的时候输入多了一次
scanf的输入格式不要添加不必要的符号,默认空格分割,如果你自己添加了字符,比如图中最后多出来的空格,那么你输入的时候,也必须按照这个格式输入。所以,想普通的输入,就把那个空格删了。还有,在C语言中,变量用于循环累加,变量定义时应该给个初值0。

c语言的循环输入问题
%c"要求每次输入并接收一个字符,asdasd0输入的话就是正确的,而如果是 a s d 这样就会连你输入的回车也作为一次输入,这恐怕不是程序期望的。所以根本原因是scanf的书写格式。如果是要求输入一个整数,可以用 scanf("%d", &v);这个时候就既可以输入:1 2 3 4,也可以是 1 2 3 4 ...

相似回答