我正试图在屏幕上打印,给出任何数字,如12:
0+12
1+11
2+10
3+9
4+8
5+7
6+6 equal!
7+5
8+4
9+3
10+2
11+1
12+0
为此我写了下面的代码:
#include<stdio.h>
int main (void)
{
int number, increment;
scanf("%d", &number);
for (increment = 0; increment <= number; increment++)
{
if ((increment >= 0) && (increment != number)) printf("%d+%d\n", increment, number);
else if (increment == number) printf("%d+%d equal\n", increment, number);
else if (number < increment) printf("%d+%d\n", increment, number);
number--;
}
return 0;
}
我的代码输出是:
0+12
1+11
2+10
3+9
4+8
5+7
6+6 equal
// missing part!
仅此而已....我需要在循环中修复哪些东西来显示缺失的部分?
感谢。
答案 0 :(得分:4)
您正在检查increment <= number
并不断减少number.
您实际上完全失去了12。你可以这样做:
for (increment = number; increment >= 0; increment--)
{
...
}
当然,必须相应地更改循环体。
答案 1 :(得分:3)
为什么你必须让一切变得如此复杂?
for(i=0; i <= num; ++i)
{
printf("%d+%d%s\n", i, num-i, (i == num-i)? " equal" : "");
}
答案 2 :(得分:0)
我认为它是因为你正在减少数字并使用它一个循环控制变量,这意味着在你添加增量并从数字中获取它只会循环6次而不是你认为它将会的12次。