for循环的编码帮助
Coding help for for loop
{
char ch;
int count, lineCount;
count = 0;
lineCount = 0;
printf("Please enter one alphabet\n");
for (lineCount = 0; (ch = getchar()) != '\n'; lineCount++)
{
putchar(ch-'0');
printf("\n");
for (count = 0; count <= (ch - '0'); count++)
printf("%c \n", ch);
}
return 0;
}
到目前为止,这是我的代码。以后我需要做更多的事情,但我一次只迈出一步。所以我会输入一封信。例如,d。
我把那个 putchar 放在那里以检查 ch-'0' 是否等于我想要的数字。确实如此。 d 为 4。
所以理论上,我认为这段代码会打印 d 4 次。但实际上,它打印了 30-40 次。
其他任何字母都一样。它打印了 40 次。另外,计数无效。我用 5 初始化它,它显然大于 4。它仍然打印了 40 次。
我没有太多使用 for 循环。我知道这个概念,但我可能犯了一个巨大的 C 语言错误。
这里有什么问题吗??
哈哈好吧我只复制了重要的部分。我有主要的。
4 不是 'd' - '0' 的整数值吗?这就是它在 putchar 语句中打印出来的内容,我实际上尝试将其更改为 int,但没有任何区别。好吧,并不是说你错了。显然我是那个错误的人。但那是我背后的想法。
拜托,你能解释一下它背后的物流以及我应该做什么吗?
嗯,基于 Please enter one alphabet
,您可以将 for
循环减少到
for (lineCount = 0; (ch = getchar()) != '\n'; lineCount++)
{
putchar(ch);
printf("\n");
printf("From Printf: %c \n", ch);
}
注:ch - '0'
通常用于获取字符数字的整数值,'0'
到 '9'
.
'd' - '0' 不是 4。如果您参考 ASCII 图表,您会看到 'd' 的十进制值为 100,'0' 的值为十进制是 48,所以我希望内部循环重复 100-48 = 52 次。
由于您执行了 putchar,它向输出发送了一个具有十进制值 52 的字节,恰好对应于 ASCII 字符“4”。
请注意,如果您键入“4”而不是 'd',您应该会看到它循环 4 次。
基本问题是定量值与给定字符集中值表示之间的关系。
{
char ch;
int count, lineCount;
count = 0;
lineCount = 0;
printf("Please enter one alphabet\n");
for (lineCount = 0; (ch = getchar()) != '\n'; lineCount++)
{
putchar(ch-'0');
printf("\n");
for (count = 0; count <= (ch - '0'); count++)
printf("%c \n", ch);
}
return 0;
}
到目前为止,这是我的代码。以后我需要做更多的事情,但我一次只迈出一步。所以我会输入一封信。例如,d。 我把那个 putchar 放在那里以检查 ch-'0' 是否等于我想要的数字。确实如此。 d 为 4。 所以理论上,我认为这段代码会打印 d 4 次。但实际上,它打印了 30-40 次。 其他任何字母都一样。它打印了 40 次。另外,计数无效。我用 5 初始化它,它显然大于 4。它仍然打印了 40 次。 我没有太多使用 for 循环。我知道这个概念,但我可能犯了一个巨大的 C 语言错误。 这里有什么问题吗??
哈哈好吧我只复制了重要的部分。我有主要的。 4 不是 'd' - '0' 的整数值吗?这就是它在 putchar 语句中打印出来的内容,我实际上尝试将其更改为 int,但没有任何区别。好吧,并不是说你错了。显然我是那个错误的人。但那是我背后的想法。 拜托,你能解释一下它背后的物流以及我应该做什么吗?
嗯,基于 Please enter one alphabet
,您可以将 for
循环减少到
for (lineCount = 0; (ch = getchar()) != '\n'; lineCount++)
{
putchar(ch);
printf("\n");
printf("From Printf: %c \n", ch);
}
注:ch - '0'
通常用于获取字符数字的整数值,'0'
到 '9'
.
'd' - '0' 不是 4。如果您参考 ASCII 图表,您会看到 'd' 的十进制值为 100,'0' 的值为十进制是 48,所以我希望内部循环重复 100-48 = 52 次。
由于您执行了 putchar,它向输出发送了一个具有十进制值 52 的字节,恰好对应于 ASCII 字符“4”。
请注意,如果您键入“4”而不是 'd',您应该会看到它循环 4 次。
基本问题是定量值与给定字符集中值表示之间的关系。