输入层数打印金字塔

来源:互联网 发布:ae软件下载 编辑:程序博客网 时间:2024/05/17 13:12
#include<stdio.h>int main(){  int i,j,n; printf("请输入金字塔的层数:\n"); scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=n-i;j++) printf(" "); for(j=1;j<=2*i-1;j++) printf("%d",i); printf("\n"); } return 0;}


控制主要集中在for(i=1;i<=n;i++) { for(j=1;j<=n-i;j++) printf(" "); for(j=1;j<=2*i-1;j++) printf("%d",i); printf("\n"); }这是嵌套循环,变量i控制外层循环次数,变量j负责内层,并且按照逻辑顺序执行所以可以复用,无需担心他的互斥性质。变量j控制的循环一共2种,第一种是打印改行的空格符。第二种是打印该行的行号。变量i控制的循环配合内部的printf("\n");则会进行换行。printf("\n");执行完毕的下一句也就是i++,则行号也会加1。

#include<stdio.h>int main(){int i,j,k=1,temp;printf("输入金字塔层数:");scanf("%d",&temp);if(temp>10){printf("input wrong");}printf("\n");for(i=1;i<=temp;i++){k=1;for(j=1;j<=temp-i;j++)printf(" ");for(;j<=temp;j++)printf("%d",k++);for(k=k-2;k>=1;k--)printf("%d",k);printf("\n");}return 1;}



#include <stdio.h>int main(){int n;int i,j;printf("输入金字塔层数:");      scanf("%d",&n);for(i=1;i<=n;i++) //for控制层数,有n层。每一层包含3个for。i代表层数{for(j=0;j<n-i;j++)   //for控制每层空格的数量,第一层n-1个,第二层n-2个。。。注意:每层printf("  ");for(j=1;j<=i;j++)    //for控制每层都是从1递增到层数,第一层从1~1,第二层从1~2....  递增printf(" %d", j);for(j=i-1;j>=1;--j)   //for控制每层从 层数-1 到1,第一层0个,第二层从1~1,第三层从2~1......                                                                                                                           递减printf(" %d", j);printf("\n");     //总结:i控制层数,第一层先遇到第一个for,输出n-1个空格,然后遇到第二个for                                   输出1~1(1个),第三个for为0-1为假,跳过这个for。                                   第二层第一个for,输出n-2个空格,以此类推。                                   只要理解每层都是由3部分构成即可(空格、递增、递减),输出3部分后                                     然后在printf(“\n”)回车到下一层。}return 0;}


0 0
原创粉丝点击