C语言程序设计 5

来源:百度知道 编辑:UC知道 时间:2024/05/08 00:05:34
编一程序输出如下图形:
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
1 2 3 4 5 6 5 4 3 2 1
这个题目的要求是
图形为锥形
我明明弄的锥形
怎么变成这个样子呢

#include<stdio.h>
void main(){
int i,j;
for(i=1;i<=6;i++)
{
for(j=1;j<=6-i;j++) /*注意:如果按网页上显示的数列输出则不要这一行和接下一行,如果要显示为锥形,请加上这两行*/
printf(" ");
for(j=1;j<i+1;j++) /*正序递增数字输出*/
printf("%d",j);
for(j=i-1;j>0;j--) /*正序递减数字输出*/
printf("%d",j);
printf("\n");
}
}
算法说明:问题可看成正序递增输出和正序递减输出两部分组成,用变量i控制输出6行,变量j控制每行的数字输出。对于正序递增输出,很简单,令变量j初值为1,因每行数字正序输出数与行数相同,故每行正序数字输出结束条件为j<i+1(j<=i效果一样),正序递减输出与正序递增输出基本相同,不过正序递减输出初始数字为行数减1,故正序递减输出数字初值应为i-1,由于正序递减输出数字数比行数少1,且正序递减输出数字为1时即不再输出,故输出结束条件可为j>0.