C语言 求详细过程 编程输出下列高度为n的图形(当n=5时) 1 3 4 10 11 2 5 9 12 6 8 13 7 14 15
展开全部
#include <stdio.h>
int main()
{
int n, i = 0, j = 0, k = 2, flag = 0;
scanf("%d", &n);
int count = n * (n + 1) / 2;
int num[100][100] = {1};
while(1)
{
if(k <= count)
{
if(flag == 0)
{
if(j == 0)
{
num[++i][j] = k++;
}
num[--i][++j] = k++;
if(i == 0)
flag = 1;
}
else
{
if(i == 0)
{
num[i][++j] = k++;
}
num[++i][--j] = k++;
if(j == 0)
flag = 0;
}
}
else
{
num[n][n] = '\0';
break;
}
}
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
if(num[i][j] != 0)
printf("%d ", num[i][j]);
}
printf("\n");
}
return 0;
}
int main()
{
int n, i = 0, j = 0, k = 2, flag = 0;
scanf("%d", &n);
int count = n * (n + 1) / 2;
int num[100][100] = {1};
while(1)
{
if(k <= count)
{
if(flag == 0)
{
if(j == 0)
{
num[++i][j] = k++;
}
num[--i][++j] = k++;
if(i == 0)
flag = 1;
}
else
{
if(i == 0)
{
num[i][++j] = k++;
}
num[++i][--j] = k++;
if(j == 0)
flag = 0;
}
}
else
{
num[n][n] = '\0';
break;
}
}
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
if(num[i][j] != 0)
printf("%d ", num[i][j]);
}
printf("\n");
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询