他们要求印刷的内容是:
F
FE
FED
FEDC
FEDCB
FEDCBA我能够打印出:
F
FF
FFF
FFFF
FFFFF使用以下代码:
int main()
{
int count, count2;
char letterToPrint = 'F';
for (count = 0; count < 5; count++)
{
for (count2 = 0; count2 <= count; count2++)
{
printf("%c", letterToPrint);
}
printf("\n");
}
}是否可以在第二个for循环中添加一些东西来打印前一个字母,然后递减它,或者这需要另一个循环?
发布于 2013-01-23 18:29:56
您只需要在内部循环中更改letterToPrint的值,并在外部循环开始时重置它:
int main()
{
int count, count2;
for (count = 0; count < 5; count++)
{
char letterToPrint = 'F'; // MOVED
for (count2 = 0; count2 <= count; count2++)
{
printf("%c", letterToPrint--);
// ^^
}
printf("\n");
}
}发布于 2013-01-23 18:29:48
请记住,C中的字符(字符文字,如'F'和char类型)都是正常的整数值,因此您可以使用它们执行正常的算术运算,例如从'F'循环到'A'。
如下所示:
for (int i = 'F'; i >= 'A'; i--)
{
for (int c = 'F'; c >= i; c--)
printf("%c", c);
printf("\n");
}发布于 2013-01-23 18:32:25
只需将printf("%c", letterToPrint);更改为printf("%c", letterToPrint - count);
不过,您可能应该使用putchar而不是printf,因为:
putchar(letterToPrint - count);
https://stackoverflow.com/questions/14477423
复制相似问题