我一直在尝试使用for循环的数字输出模式,而我无法准确理解这段代码正在做什么。有人可以逐行解释为什么这会显示它的输出吗?任何帮助总是受到赞赏..
int main() {
int x, y;
for(x = 10; x >= 1; x--)
{
for(y = 1; y < x; y++)
{
printf("%d", y);
}
printf("\n");
}
system("pause");
return 0;
}
答案 0 :(得分:2)
有两个循环,一个是内部另一个。
外部循环(x
)从10减少到1(包括1):
for(x = 10; x >= 1; x--)
内循环(y
)从1到x - 1
计算。它将针对x
在外循环中采用的每个值迭代此范围。
for(y = 1; y < x; y++)
所以它会像这样:
x == 10
和y
将取值1,2,3,4,5,6,7,8,9。这些数字将一个接一个地打印x
将变为9,因此在下一次迭代中,y
将打印值1,2,3,4,5,6,7,8 x
将变为2,y
将仅打印值1
。x
将为1
,内部循环根本不会运行(不会有大于1但小于x
的数字)。所以最后一行是空白的。答案 1 :(得分:2)
在外部循环中,您将x
设置为降序值,直至x >= 1
。换句话说,您正在循环x
的{{1}}值。
10, 9, ..., 1
在内部循环中,您将 for(x = 10; x >= 1; x--)
{
的值经过y=1
。
所以,y<x
,x=10
。
y=1,2, ...9
,x=9
。
等等。
y=1,2, ...8
在内部循环中,您打印出 for(y = 1; y < x; y++)
{
。
y
在每个内循环结束时,您正在打印换行符。
printf("%d", y);
}
实际上,您为 printf("\n");
}
的每个值在一行中打印出y
个值。因此,当x
从x
转到10
时,您会期望输出如下:
1
答案 2 :(得分:0)
int main() {
int x, y;
for(x = 10; x >= 1; x--)
{
// this for loop will run 10 times, with x values: 10 9 8 ... 2 1
for(y = 1; y < x; y++)
{
// will print 1234 ... up to one less than the current value of x
printf("%d", y);
}
printf("\n");
}
system("pause");
return 0;
}
期待输出
123456789
12345678
1234567
123456
12345
1234
123
12
1
答案 3 :(得分:0)
int main() {}
这是方法的名称
int x, y;
这是声明两个整数,其中没有存储值(例如x =无数字&amp; y =无数字)。
for(x = 10; x >= 1; x--)
这设置x = 10然后执行给定块内的代码多次,每次向上递减x,直到达到1,然后停止循环。
for(y = 1; y < x; y++)
设置y = 1然后执行给定块内的代码多次,每次向上增加y,直到达到低于x的值。
printf("%d", y);
这会打印y的值。
printf("\n");
这开始了新的一行
system("pause");
这会暂停系统
return 0;
这将返回0,从而结束程序
答案 4 :(得分:0)
这只是从1循环到“1小于x”。在外部循环中,x从10减少到1。
int x, y; //Declare 2 integers x and y.
for(x = 10; x >= 1; x--) //Loop through values of x starting with 10 then decrease by 1 until x = 1. Each time do the following:
{
for(y = 1; y < x; y++) //Loop through values for y starting at 1 and going to 1 less than the x from the line above. Each time do the following:
{
printf("%d", y); // Print the value of y as a decimal integer
}
printf("\n"); //Print a carriage return. i.e. start a new line after this.
}
system("pause"); //Wait so you can see the output until you type a key.
return 0; //When this program is run it will return a value of 0 to whereever it was called from.
您应该看到以下输出。
123456789
12345678
1234567
123456
12345
1234
123
12
1