for循环输出数字金字塔
用for循环输出下列数字金字塔1121123211234321123454321想了又想没有想到一个好方法,请高手帮忙!(C)...
用for循环输出下列数字金字塔
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
想了又想没有想到一个好方法,请高手帮忙!(C) 展开
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
想了又想没有想到一个好方法,请高手帮忙!(C) 展开
1个回答
展开全部
我是这样想的,由输入的数字(num)决定输出几行,然后根据输到了第几行(row)来决定输出多少个空格(就是从第几个位置开始输出1),即为第num-row个位置,再从1开始输出到row,再从row-1输出到1,然后换行……
程序如下:
#include<stdio.h>
void PrintNum(int num, int row);//num:输入的行数,row:输到的行数
int main()
{
int row,num;
puts("Please input number:");
scanf("%d",&num);
printf("-----------------------\n");
for(row = 1; row <= num; row++)
{
PrintNum(num, row);
}
return 0;
}
void PrintNum(int num, int row)
{
int i;
for(i = 0; i < (num - row); i++)
printf(" ");//输出(num - row)个空格
for(i = 1; i <= row; i++)
printf("%d", i);//从1开始输出到row
for(i = (row - 1); i >= 1; i--)
printf("%d", i);//再从(row-1)输出到1
printf("\n");//换行
}
程序如下:
#include<stdio.h>
void PrintNum(int num, int row);//num:输入的行数,row:输到的行数
int main()
{
int row,num;
puts("Please input number:");
scanf("%d",&num);
printf("-----------------------\n");
for(row = 1; row <= num; row++)
{
PrintNum(num, row);
}
return 0;
}
void PrintNum(int num, int row)
{
int i;
for(i = 0; i < (num - row); i++)
printf(" ");//输出(num - row)个空格
for(i = 1; i <= row; i++)
printf("%d", i);//从1开始输出到row
for(i = (row - 1); i >= 1; i--)
printf("%d", i);//再从(row-1)输出到1
printf("\n");//换行
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询