题意分析:
从键盘输入一个整数n(1≤n≤9),打印出指定的数字图形。要求在程序中定义并调用如下函数:PrintSpace(m)用来输出m个空格;PrintDigit(m)来输出一行中的数字串"12...m...21"(该行中的最大数字是m)。函数原型如下:
void PrintDigit(int m);
void PrintSpace(int m);
解题思路:
编写两个函数,发现图形规律与打印实心菱形相近,利用两个循环来控制每一行的数字规律。
代码实现:
1 #include<stdio.h> 2 void PrintDigit(int m) 3 { 4 int i; 5 for(i=1;i<=m;i++) 6 printf(" "); 7 } 8 void PrintSpace(int m) 9 { 10 int i; 11 for(i=1;i<=m;i++) 12 printf("%d",i); 13 for(i=m-1;i>=1;i--) 14 printf("%d",i); 15 } 16 int main() 17 { 18 int n,i; 19 scanf("%d",&n); 20 for(i=1;i<=n;i++) 21 { 22 PrintDigit(n-i); 23 PrintSpace(i); 24 printf("\n"); 25 } 26 for(i=n-1;i>=1;i--) 27 { 28 PrintDigit(n-i); 29 PrintSpace(i); 30 printf("\n"); 31 } 32 return 0; 33 }
易错分析:
忽视空格问题。
原文地址:https://www.cnblogs.com/yuanqingwen/p/10356150.html
时间: 2024-11-12 22:41:53