HUELOJ: 107 打印数字图形(函数专题)
题目描述
从键盘输入一个整数 n(1≤n≤9),打印出指定的数字图形。要求在程序中定义并调用函数 PrintLine()来输出图形中的一行,该行中的最大数字是 m,函数原型如下:
PrintLine(int m);
输入描述
正整数 n(1≤n≤9)。
输出描述
指定数字图形。
输入样例
5
输出样例
112112321
1234321
1234543211234321123211211
代码
#include <stdio.h>
void PrintSpace(int m);
void PrintNum(int m);
void PrintSpace(int m)
{while(m--)//打印m个空格printf(" ");
}
void PrintNum(int m)
{int i;for(i = 1;i < m;i++){printf("%d",i);}for(i = m;i > 0;i--){printf("%d",i);}
}
int main()
{int n,i;scanf("%d",&n);//打印上半部分图形for(i = 1;i < n;i++){PrintSpace(n-i);// 左侧空格数 = n-iPrintNum(i);//数字部分PrintSpace(n-i);//右侧空格数 = n-i printf("\n");}//打印下半部分图形for(i=n;i>0;i--){PrintSpace(n-i);PrintNum(i);PrintSpace(n-i);printf("\n");}return 0;
}