S1E20课后习题2,getchar()提问
如题,代码如下:0 char slogan;
1 int i, j, ch, min, max, temp;
2
3 for (i = 0; i < NUM; i++)
4 {
5 printf("请输入%d句话:", i+1);
6 for (j = 0; (ch = getchar()) != '\n'; j++)
7 {
8 slogan = ch;
9 }
10 slogan = '\0';
11 }
第10行,在循环输入后,不应该是slogan = ch; 吗?
为什么slogan呢?难道即使条件不成立, j++ 也继续运行一次? 1.那我要倒问你为啥要slogan = ch;,你可以看作为一维数组的赋值的,条件不满足,j不会++
2.int ch将其转换成ascii码表上对应的十进制 还有 getchar() 返回的不是字符char吗?为什么int ch 不会报错,可以正常运行? 你要'/n'吗? 条件不成立直接退出循环啊 大马强 发表于 2021-8-25 09:40
1.那我要倒问你为啥要slogan = ch;,你可以看作为一维数组的赋值的,条件不满足,j不会++
2.int ch将 ...
知道了,是上一轮循环的时候j++已经生效了,所以这次循环判断失败直接退出。"fishc\n", 'c'的时候j++。
页:
[1]