程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-C語言楊輝三角實現...................

c語言-C語言楊輝三角實現...................

編輯:編程綜合問答
C語言楊輝三角實現...................

int a[10][10];
int i,j,h;

    scanf_s("%d",&h);//想打印的行數
    for (i = 0; i < 10; i++)
        for (j = 0; j < 10; j++)
            if (j>i)
                a[i][j] = 0;// 對列大於行的元素清零

    for (i = 0, j = 0; i < 10; i++)
        a[i][0] = 1;//把第一列全部變成1

    for (i = 0; i < 10; i++)
        for (j = 0; j < 10; j++)
            if (j = i)
                a[i][j] = 1;//把對角線的元素全變成1

    for (i = 0; i < 10; i++)
        for (j = 0; j < 10; j++)
            if (i>0 && j>0)
                a[i][j] = a[i - 1][j] + a[i - 1][j - 1];//只要不是第一行的或者第一列的全都按這個規律,這個元素等於它上面的加左上面的元素。

    for (i = 0; i < h + 1; i++)
    {
        for (j = 0; j < h+1; j++)
        { if (i>=j)
                printf("%d", a[i][j]);
        }
        printf("\n");
    }//把每一行都打印出來,前提是行大於或等於列。
    請大神們不吝賜教,哪錯了

最佳回答:


#include
int main(){

int a[10][10]={0};
int i,j,h;
scanf("%d",&h);//想打印的行數
for (i = 0; i < 10; i++)
for (j = 0; j < 10; j++)
if (j>i)
a[i][j] = 0;// 對列大於行的元素清零

for (i = 0,j=0; i < 10; i++)
{
     a[i][0] = 1;//把第一列全部變成1

}

for (i = 0; i < 10; i++)
{
     for (j = 0; j < 10; j++)
     {
        if (j == i)//   **已改正 == 原為 j=i    應該為 j==i**
            a[i][j] = 1;//把對角線的元素全變成1
     }

}


for (i = 0; i < 10; i++){

    for (j = 0; j < 10; j++){

        if (i>0 && j>0&& i>=j)/**/只打印對角線下面 **
            a[i][j] = a[i - 1][j] + a[i - 1][j - 1];//只要不是第一行的或者第一列的全都按這個規律,這個元素等於它上面的加左上面的元素。
        }

}
for (i = 0; i < h + 1; i++)
{
for (j = 0; j < h+1; j++)
{ if (i>=j)
printf("%d\t", a[i][j]);
}
printf("\n");
}//
}

注意相等與賦值的區別,= 與 == 是不同的

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved