日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

利用二维数组编程实现功能:输入一个整数n(n不超过10),输出n行的杨辉三角形

發布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用二维数组编程实现功能:输入一个整数n(n不超过10),输出n行的杨辉三角形 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

楊輝三角形的用處與構成

  • 11冪次方的值
  • 二項式系數
  • 相加為2冪次方的值
  • 構成為下一行數為上面臨近的兩個數相加
  • 遇到的問題

  • ?該使用哪個數組
  • 先賦值再輸出還是邊賦值邊賦值
  • 如何控制首位均為1
  • 如何使輸出變得好看
  • 解決問題?

  • ?q1:我們考慮一維數組后發現無法實現下一行等于上兩行相加,所以運用二維數組會更加便捷
  • q2,3:首先我們先考慮先賦值后輸出 for(i=0;i<n;i++){a[i][0]=1;}

    首行為一

    for(i=1;i<n;i++){for(j=1;j<=i;j++){a[i][j]=a[i-1][j]+a[i-1][j-1];}}

    下一行等于上兩行相加

    #include<stdio.h> int main() {int i,j,n,a[10][10]={0};printf("請輸入一個整數:");scanf("%d",&n);for(i=0;i<n;i++){a[i][0]=1;}for(i=1;i<n;i++){for(j=1;j<=i;j++){a[i][j]=a[i-1][j]+a[i-1][j-1];}}for(i=0;i<n;i++){for(j=n;j>=i+1;j--){printf(" ");}//這里的j可以重復用內存更小 for(j=0;j<=i;j++){printf("%-6d ",a[i][j]);}printf("\n");}return 0;}

    特別特別注意的一點就是這里優化循環,只用一個j在兩個內循環中可以減小內存,然后我們考慮的是是否可以邊賦值邊輸出

    #include<stdio.h> int main() {int i,j,n,a[10][10]={0};printf("請輸入一個整數:");scanf("%d",&n);for(i=0;i<n;i++){a[i][0]=1;for(j=0;j<=i;j++){a[i][j]=a[i-1][j]+a[i-1][j-1];printf("%d ",a[i][j]);}printf("\n");}return 0;}

    ?檢查j部分,我們必須要使j-1和i-1存在,所以沒有辦法寫在一個程序里面,那樣將會使程序變得更復雜

  • q4:這里我也沒想明白嘿嘿,是抄的大佬的,最后輸出結果如下

    ?

  • 總結

    以上是生活随笔為你收集整理的利用二维数组编程实现功能:输入一个整数n(n不超过10),输出n行的杨辉三角形的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。