1. 程式人生 > >c語言:二維陣列輸出楊輝三角!

c語言:二維陣列輸出楊輝三角!

       今天做了楊輝三角的題目。在草稿上面寫好了思路,回到宿舍就開始開始敲程式碼。就幾行,不過除錯的時候搞錯了兩個地方,一個是i=j還有一個是j=0;好久不搞這個,居然犯這麼低階的錯誤!,改好之後就好了!
       楊輝三角你只要是明白了思路就好辦,下面是我的思路:

       1    
       1    1
       1    2    1
       1    3    3    1
       1    4    6    4    1
       1    5    10   10  5   1
       我是 用二維陣列來做的,我們可以看出來,這個規律是每一列的第一項和最後一項都是1,也就對應我們的二維陣列(a[i][j])中的i=j或者j=0的時候的情況。中間的數字我們這樣子看,是把它上一行左右兩邊的數字來相加的。比如:第五行第三個數是6既a[5][3]是等於第四行第二個數和第三個數相加的來的,也就是a[4][2]+a[4][3];我們可以得出這樣的一個式子:a[5][3] = a[4][2] + a[4][3];規律準備出來了,再看看:a[5][3] = a[5-1][3-1] + a[5-1][3],我們再看看其他的是不是這個規律,第六行第四個數是10既:a[6][4] 等於第五行第三個數加上第四個數。也就是a[5][3]+a[5][4]。也得出:a[6][4] = a[5][3] + a[5][4]  -->  a[6][4] = a[6-1][4-1] + a[6-1][4]。
       從上面我們就可以得出來a[i][j] = a[i-1][j-1] +a[i-1][j]。

      上程式碼

Code:
  1. #include <stdio.h>
  2. void main()  
  3. {  
  4.     int a[10][10]={0},i,j;  
  5.     for (i=0;i<10;i++)  
  6.     {     
  7.         for (j=i;j>=0;j--)  
  8.         {  
  9.             if (i==j || j==0)  
  10.             {  
  11.                 a[i][j]=1;  
  12.             }else
    {  
  13.                 a[i][j] = a[i-1][j-1]+a[i-1][j];//這裡的規律是如果不是第一項或者最後一項,就把前面的值相加。
  14.             }  
  15.         }  
  16.         for (j=i;j>=0;j--)  
  17.         {  
  18.             printf("%d   ",a[i][j]);  
  19.         }  
  20.         printf("/n");  
  21.     }  
  22. }  

相關推薦

c語言陣列輸出三角

       今天做了楊輝三角的題目。在草稿上面寫好了思路,回到宿舍就開始開始敲程式碼。就幾行,不過除錯的時候搞錯了兩個地方,一個是i=j還有一個是j=0;好久不搞這個,居然犯這麼低階的錯誤!,改好之後就好了!        楊輝三角你只要是明白了思路就好辦,下面是我的思路:

java陣列學習使用陣列輸出三角

import java.util.Scanner;/* 輸出二維陣列"楊輝三角"i\j 0 1 2 3 4 50 11 1  12 1  2  13 1 3 3  1          &

利用陣列輸出三角(前10行)

public class yanghuisanjiao { public static void main(String[] args) { // TODO Auto-generated method stub int N=10,i,j; int a[][]=

C語言筆記--利用陣列輸出三角形

楊輝三角形又稱帕斯卡三角形,其餘的話就不多說,先看下面的三角形:                                 &nb

C語言陣列元素的引用

任務程式碼: (1) #include <stdio.h> int main() { int a[3][5],i,j; printf("輸入3*5陣列:\n");

陣列實現三角

 參考連結:http://c.biancheng.net/view/495.html #include <stdio.h> #define N 20 int main(int argc, const char *argv[]) { int a[N][N] = {{0}

java 利用一陣列陣列列印三角

列印楊輝三角 一維陣列 Triggle1.java package 第一章; //利用一維陣列列印楊輝三角 import java.util.Scanner; public class Triggl

Java 陣列實現三角

二維陣列實現楊輝三角 import java.util.*; public class YangHuiSanJiao { public static void main(String[]

C語言在螢幕上列印三角

在編寫這個程式之前,我們應該清楚什麼是楊輝三角? 解釋:每個數等於它上方兩數之和。每行數字左右對稱,由1開始逐漸變大。第n行的數字有n項。 #include<stdio.h> #include<windows.h> #define N 10 定

C語言數組與指針實踐1

mvc 數組 vpx c99 mar ebe inf xsl ndt 實1r遜5駛誹喜濟51http://docstore.docin.com/psb360 毓V私陶塹4v31Fhttp://www.docin.com/zucga0192 53o97gw蓖沙賭2yh

C語言陣列解魔方陣

解題思路: 魔方陣的排列規律如下(思路來自網際網路): 注意:剛開始我也沒看懂,但是相信我多看幾遍理解已經能看懂的。 如3×3的魔方陣:      8   1   6  &nbs

C語言傳遞陣列

方法一, 形參給出第二維的長度。 例如: #include <stdio.h> void func(int n, char str[ ][5] ) { int i; for(i = 0; i < n; i++) printf("/nstr[%d] = %s/n"

C語言陣列按行分別排序

//傳遞“指標陣列”方法#include <stdio.h> //排序函式,分別對每一行的元素進行排序 void sort(int *a[],int row,int col) { int i,j,k,temp; for(i=0; i<row; i++) {

C語言基礎-----陣列,三陣列

一 二維陣列 1.二維陣列的定義: 資料型別  陣列名[行][列] ={ 數值1,數值2......}; 2.二維陣列有幾行,就代表有幾個一維陣列. int a[2][3] = {1,2,3,4,5,

C語言陣列動態分配記憶體的問題

C語言中動態分配一位陣列是很簡單的,但是沒有可以直接對二維陣列進行動態分配的函式,因此,要相對二維陣列動態分配記憶體,便要藉助於一位陣列來實現,具體如下: 假設要為一個n*m的二維陣列分配動態

C語言陣列名與陣列地址、首行地址、首行首元素地址關係與區別詳解(初學者必須掌握)

C語言作為很多大學理工科都會學習的語言,作為一種程式設計入門語言。但是相對於其他高階程式語言來說相對是比較難,尤其是指針,不知道有多少莘莘學子都是因為它,從C語言入門到放棄。想當年,筆者在大一學習C語言

C語言3X3陣列轉置

#include <stdio.h>#include <stdlib.h>int main(){   int a[3][3];    int j,i,temp;    for(i=0;i<3;i++)    for(j=0;j<3;j++)

C語言陣列做函式引數

任務程式碼: (1)用多維陣列名做函式引數: #include <stdio.h> int max_value(int array[][4]); int main( ) { i

iOS開發學習之C語言---C11 陣列、字串陣列、多陣列

//  main.m //  C11 二維陣列、字串陣列、多維陣列 // //  Created by xalo on 15/10/21. //  Copyright (c) 2015年 Darling.com. All rights reserved. /

C 語言陣列指標詳解

C語言中,指標是一個複雜但又靈活多變的知識點,我們知道,在一維陣列中,對於一個數組a[],*a,a,&a,都表示a的首地址,但如果與二維陣列混合使用,就顯得更為複雜了。例如對於一個二維陣列  a[2][4]={{1,2.3},{4,5,6}}  a+i,&a