【发布时间】:2019-09-06 13:14:03
【问题描述】:
给定一个数字 N,打印以下模式。
输入格式
输入包含一个数字N
约束
1
输出格式
所需的模式 对于输入 5 是
1
2 9
3 8 10
4 7 11 14
5 6 12 13 15
输入 3 是
1
2 5
3 4 6
这是我尝试过的代码..但结果不一样
#include<stdio.h>
void pattern(int n)
{
for(int i=1; i<=n; i++)
{
int k = i;
for(int j=1; j<=i; j++)
{
printf("%d ",k);
k = n - j + k;
}
printf("\n");
}
}
int main()
{
int n = 5;
pattern(n);
return 0;
}
这是上面代码的结果
1
2 6
3 7 10
4 8 11 13
5 9 12 14 15
我应该如何修改上面的代码以获得预期的输出?
【问题讨论】:
-
所需的图案结构不清晰,添加换行符更清晰。
-
这是一个有趣的问题,而且不是一个简单的问题。我认为你将不得不有一个额外的变量,因为你在每一行中从左到右移动,跟踪偶数、奇数、偶数、奇数。在“偶数”列中,您执行您已经在做的事情,但在“奇数”列中,您必须以某种方式翻转事物,以便从下到上倒数。
标签: c loops for-loop while-loop numbers