它读取的时候不应该是从同开始读取吗

img


为什么这一行打印出来G不见了,它读取的时候不应该是从同开始读取吗

for循环第一次进入不会执行第三条语句,第一次进入你把它赋值为 ‘ $ ’ 了

【以下回答由 GPT 生成】

答案应为:

在您的代码中,出现了几个问题导致打印出来的字符"G"不见了:

  1. 在for循环的初始条件中,您错误地将字符'ch'放入了双引号中,这样它就变成了一个字符串而不是字符。正确的写法应该是 ch = 'c'

  2. 在for循环的条件判断中,您使用了不等于号(!=)来判断字符ch是否等于字符'g'。然而,字符变量ch的值是当前读取的字符,而不是之前的字符。因此,当使用scanf函数读取新的字符时,循环条件判断应该使用ch != 'g'

  3. 在使用scanf函数读取字符时,您错误地在%c的参数后面加上了sizeof(ch)scanf函数不需要指定参数的大小。正确的写法应该是 scanf("%c", &ch)

请参考下面修改后的代码:

#include<stdio.h>
#define SIZE 10
#define PAR 72

int main(void){
    char ch;

    scanf("%c", &ch);
    for(ch = 'c'; ch != 'g'; scanf("%c", &ch)){
        printf("%c", ch);
    }

    return 0;
}

这样修改后的代码应该能够按照预期输出字符"G"。如果还有其他问题,请随时提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

这样改,供参考:

#include<stdio.h>
#define SIZE 10
#define PAR 72
int main(void) 
{
    for (char ch; scanf("%c", &ch) && ch != 'g'; printf("%c", ch));
    return 0;
}