CC++ 打印杨辉三角

 1 #include <iostream>
 2 #include  <iomanip>
 3 using namespace std;
 4 #define N 100
 5 
 6 int main()
 7 {
 8     int a[N][N] = {0};
 9     int i, j, n = 6;
10     cin>>n;
11      
12     for(i=1;i<=n;i++){
13         a[i][1] = a[i][i] = 1;  /*1.第一列和对角线的数都是1*/
14     }
15         
16     for(i=3;i<=n;i++)
17     {
18         for(j=2;j<=i-1;j++){
19             a[i][j]=a[i-1][j-1]+a[i-1][j];  /*2.除两边的数, 等于左上/上两数之和*/ 
20         }          
21     }
22         
23     for(i=1;i<=n;i++)
24     {
25         cout<<setw((n-i)*3)<<' ';
26         
27         for(j=1;j<=i;j++)  
28         {
29             cout<<setw(6)<<a[i][j];  
30         }
31               
32         cout<<endl;
33     }
34     
35     return 0;
36 }

c代码:

 1 #include<stdio.h>
 2 #define N 100
 3 int main()
 4 {
 5     int a[N][N] = {0};
 6     int i, j, k, n = 6;
 7     //scanf("%d",&n);
 8      
 9     for(i=1;i<=n;i++){
10         a[i][1] = a[i][i] = 1;  /*1.第一列和对角线的数都是1*/
11     }
12         
13     for(i=3;i<=n;i++)
14     {
15         for(j=2;j<=i-1;j++){
16             a[i][j]=a[i-1][j-1]+a[i-1][j];/*2.除两边的数外, 都等于左上/上两数之和*/ 
17         }          
18     }
19         
20     for(i=1;i<=n;i++)
21     {
22         /*for(k=1;k<=n-i;k++){//输出空格美观,  缺点是数与上面的数是同列的关系不清
23             printf("   ");  
24         }*/            
25             
26         for(j=1;j<=i;j++){  /*j<=i的原因是不输出其它的数,只输出我们想要的数*/
27             printf("%-6d",a[i][j]);              
28         }               
29         printf("
");  /*当一行输出完以后换行继续下一行的输出*/
30     }
31     
32     return 0;
33 }

原文地址:https://www.cnblogs.com/GoldenEllipsis/p/11614503.html