{
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 - &#39; 0&#39; 0等于我想要的数字。确实如此。 d出来4。 所以从理论上讲,我认为这段代码会打印4次。但实际上,它打印出来的好30-40次。 它与任何其他字母相同。它打印出好40次。此外,计数没有效果。我用5初始化它,显然大于4.它仍然打印出40次。 我还没有用过很多东西。我知道这个概念,但我可能会犯一个巨大的C语言错误。 这里有什么问题?
答案 0 :(得分:0)
根据Please enter one alphabet
,您可以将for
循环缩减为
for (lineCount = 0; (ch = getchar()) != '\n'; lineCount++)
{
putchar(ch);
printf("\n");
printf("From Printf: %c \n", ch);
}
注意:ch - '0'
通常用于获取 char 数字的整数值,'0'
到'9'
}。
答案 1 :(得分:0)
&#39; d&#39; - &#39; 0&#39;不是4.如果您参考ASCII图表,您将看到&#39; d&#39;的值。十进制数为100,&#39; 0&#39;的值为十进制是48,所以我希望内循环重复100-48 = 52次。
由于你做了putchar,它向输出发送了一个十进制值为52的字节,这恰好对应于ASCII字符&#39; 4&#39;。
请注意,如果您输入了&#39; 4&#39;而不是&#39; d,你应该看到它循环4次。
基本问题是定量值与给定字符集中值的表示之间的关系。