for循环第一次进入不会执行第三条语句,第一次进入你把它赋值为 ‘ $ ’ 了
【以下回答由 GPT 生成】
答案应为:
在您的代码中,出现了几个问题导致打印出来的字符"G"不见了:
在for循环的初始条件中,您错误地将字符'ch'放入了双引号中,这样它就变成了一个字符串而不是字符。正确的写法应该是 ch = 'c'
。
在for循环的条件判断中,您使用了不等于号(!=
)来判断字符ch
是否等于字符'g'。然而,字符变量ch
的值是当前读取的字符,而不是之前的字符。因此,当使用scanf
函数读取新的字符时,循环条件判断应该使用ch != 'g'
。
在使用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;
}