我正在尝试打印以下系列:
1
2 3
4 5 6
7 8 9 10
... ... ..
我程序的输入包含一个整数 n ,它确定要打印的行数。
我尝试对其进行编码,但得到以下输出:
1
2 3
3 4 5
4 5 6 7
... ... ...
#include<stdio.h>
int main()
{
int n,i,j,t,m;
scanf("%d", &n);
for(i=1;i<=n;i++)
{
for(j=i,t=1;t<=i;j++,t++)
{
printf("%d ",j);
}
printf("\n");
}
}
答案 0 :(得分:2)
要打印这些数字,您需要一个计数器,该计数器以1
开始,每次打印都以1
递增,并且永远不会被任何东西重置。像这样调整循环:
int main()
{
int n, i, j, t = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i; j++, t++)
{
printf("%d ", t);
}
printf("\n");
}
}
请注意如何将t
设置为1
,并且只增加t++
而不会像以前一样进行重置。另外,您应该打印t
,而不是j
。
答案 1 :(得分:0)
您应该为数字和每行数字维护单独的计数器。
int nr = 1, target;
int nrsperline = 1, i;
scanf("%d", &target);
while (nr <= target) {
for (i = 0; i < nrsperline; i++) {
printf("%d ", nr++);
}
printf("\n");
nrsperline++;
}