大學c語言迴圈章節問題。 不用陣列 編寫程式,輸出楊輝三角形

2022-05-18 11:34:40 字數 6032 閱讀 7965

1樓:井元綠

#include

#define n 14

void main()

printf("%d行楊輝三角如下:\n",n);

for(i=1;i<=n;i++)

a[i][1] = a[i][i] = 1; /*兩邊的數令它為1,因為現在迴圈從1開始,就認為a[i][1]為第一個數*/

for(i=3;i<=n;i++)

for(j=2;j<=i-1;j++)

a[i][j]=a[i-1][j-1]+a[i-1][j]; /*除兩邊的數外都等於上兩頂數之和*/

for(i=1;i<=n;i++)

printf("\n");

}拓展資料:

c語言是一門通用計算機程式語言,廣泛應用於底層開發。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

二十世紀八十年代,為了避免各開發廠商用的c語言語法產生差異,由美國國家標準局為c語言制定了一套完整的美國國家標準語法,稱為ansi c,作為c語言最初的標準。

2樓:匿名使用者

#include

/* * 定義階乘,在這裡可能會想。為什麼要用float,當我試第一次的時候,

* 如果用int的話,那麼在列印行數多了以後就會出錯。

* 這是因為階乘的數比較大,如果用int就不夠用了。下同*/float j(int i)

float c(int i,int j)

void main()

printf("%d行楊輝三角如下:\n",i);

for(j=0;j

3樓:夢愛

剛剛參加復古紅地熱管理學開房間發不出的廣西桂林在這個辛苦尺寸好的老公裝不下了感謝老公系統

c語言:不使用陣列編寫楊輝三角形10行的遞迴程式 20

4樓:暄和

//輸出楊輝三角

# include

void main()

int yang(int x, int y);

int i, j, k;

for(i = 1; i <= 10; i++)//i控制行數for(j = 0; j <10-i; j++)printf(" ");

for(k = 1; k <= i; k++)//y表示這一行中第幾個數

printf("%4d", yang(i, k));

printf("\n");

int yang(int x, int y)int z;

if(y == 1 || y == x)  z = 1;

else z = yang(x-1, y-1) + yang(x-1, y);

return z;

不知道能不能滿足lz要求。

5樓:闊海的賬戶

#include

int * yh(int num)

*(p+num) = 1; // 最後一個楊輝數等於1

for(i=0;i<=num;i++)

printf("%d ",*(p+i)); //輸出第num行的楊輝數

printf("\n");

return p;

}void main()

楊輝三角的初值(第0行)是1,第1行是1,1 ,第2行是1,2,1 ,。。。第n行的第1個和最後一個數都是1,中間的數比第n-1行少1個,而且是第n-1行依次兩兩相加的結果。所以遞迴演算法就是:

第n行的第1個和第n+1個數是1,第2個到第n個數是第n-1行結果依次兩兩相加。遞迴結果的輸出很關鍵,就是輸出第n行的楊輝數。

因為不準用陣列,所以這裡採用了指標。每一行分配n+1個整數空間給p,*(p+0)代表第1個楊輝數,*(p+1)代表第2個楊輝數,*(p+n)代表第n+1個楊輝數,可以看出來,*(p+0)=1, *(p+n)=1;

遞迴函式返回該行的楊輝數的指標。

所以遞迴演算法的核心:計算第n行的楊輝數,首先要獲得第n-1行的楊輝數,這個楊輝數遞迴呼叫計算第n-1行的楊輝數,其結果由指標lastp獲得,然後計算第n行的楊輝數:

*(p+i) = *(lastp+i-1) + *(lastp+i);(1<=i<=n-1)也就是除第1個和第n+1個楊輝數之外的楊輝數是上一行楊輝數兩兩相加。

在遞迴呼叫中輸出結果就可以了。

6樓:匿名使用者

#include "stdafx.h"

/*#include

#include

#include

#include

using namespace std ;

*/#include

int multiply( int n ) // 排列 階乘

int combine( int n , int m ) // 組合

void print( int n = 1 )printf( "\n" ) ;

if( n > 10 )

return ;

else

print( n + 1 ) ;

}int main()

編寫程式 在螢幕上輸出楊輝三角 c語言 迴圈結構

7樓:匿名使用者

如果只是輸出不儲存的話,可以這樣實現,不寫主函式了:

void printyanghui(int n) // 列印n行楊輝三角

}int c(int i, int j)

8樓:匿名使用者

#include

main()

for(i=2;i<10;i++) /* 計算中間的數值 */

for(j=1;j

a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=0;i<10;i++) /* 輸出部分 */}

c語言,輸出楊輝三角

9樓:匿名使用者

修改:#include"stdio.h"

void main()

for(i=1;i=9;i++)

for(j=1;ja[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=0;i<=9;i++)

printf("\n");

}return 0;}

擴充套件資料:

楊輝三角概述:

1.每個數等於它上方兩數之和。

2.每行數字左右對稱,由1開始逐漸變大。

3.第n行的數字有n+1項。

4.第n行數字和為2n。

5.第n行的m個數可表示為 c(n-1,m-1),即為從n-1個不同元素中取m-1個元素的組合數。

6.第n行的第m個數和第n-m+1個數相等 ,為組合數性質之一。

7.每個數字等於上一行的左右兩個數字之和。可用此性質寫出整個楊輝三角。

即第n+1行的第i個數等於第n行的第i-1個數和第i個數之和,這也是組合數的性質之一。即 c(n+1,i)=c(n,i)+c(n,i-1)。

8.(a+b)n的式中的各項係數依次對應楊輝三角的第(n+1)行中的每一項。

9.將第2n+1行第1個數,跟第2n+2行第3個數、第2n+3行第5個數……連成一線,這些數的和是第4n+1個斐波那契數;將第2n行第2個數(n>1),跟第2n-1行第4個數、第2n-2行第6個數……這些數之和是第4n-2個斐波那契數。

10將各行數字相排列,可得11的n-1(n為行數)次方:1=11^0; 11=11^1; 121=11^2……當n>5時會不符合這一條性質,此時應把第n行的最右面的數字"1"放在個位,然後把左面的一個數字的個位對齊到十位。

以此類推,把空位用「0」補齊,然後把所有的數加起來,得到的數正好是11的n-1次方。以n=11為例,第十一行的數為:1,10,45,120,210,252,210,120,45,10,1,結果為 25937424601=1110。

10樓:匿名使用者

#include

#define n 10 //定義常量n,表示輸出n行楊輝三角的值int main()

;printf("楊輝三角列表規律是每行的第一列和最後一列的值為1,其餘的值是例如第n行第m列的值=第n-1行第m列+第n-1行第m-1列\n");

for(i=0;i

printf("\n");//輸出列表是一個直角三角形}return 0;}

11樓:聽不清啊

已經修改好了:

#include

intmain()

;for(i=0;i<=9;i++)for(j=0;j<=9;j++)

for(i=2;i<=9;i++)for(j=1;j

for(i=0;i<=9;i++)return0;}

12樓:匿名使用者

for裡面錯了

#include"stdio.h" //楊輝三角的輸出void main()

for(i=1;i<10;i++)

for(j=1;j

a[i][j]=a[i-1][j-1]+a[i-1][j];

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

13樓:1024程式設計師

c語言經典例子之列印楊輝三角形

14樓:4747哦

#include

#define n 22

int main()

printf("%d行楊輝三角如下:\n",n);

for (i = 0; i < n; i++) //先賦值楊輝三角兩邊

for (i = 2; i < n; i++) // 計算中間的數值for (i = 0; i < n; i++) // 輸出}

15樓:匿名使用者

#include

int main()

;scanf("%d",&n);

if(n>34)return 1;

for(i=0;i0;j--)

a[j]=a[j]+a[j-1];

for(j=0;j<=i;j++)

printf("%ld ",a[j]);

printf("\n");

}return 0;}

16樓:夏天的小紅花

#include

;scanf("%d",&n);

for(i=0;i<=n;i++)

return 0;}}}

17樓:

和前面答主的回覆大同小異,只是輸出楊輝三角時有點差異,稍微緊湊些。

c語言程式設計輸出楊輝三角形(要求輸出10行)?

18樓:匿名使用者

#include

int main()

return 0;

}擴充套件資料:

c語言需要說明的是:

1.一個c語言源程式可以由一個或多個原始檔組成。

2.每個原始檔可由一個或多個函式組成。

3.一個源程式不論由多少個檔案組成,都有一個且只能有一個main函式,即主函式。是整個程式的入口。

4.源程式中可以有預處理命令(包括include 命令,ifdef、ifndef命令、define命令),預處理命令通常應放在原始檔或源程式的最前面。

5.每一個說明,每一個語句都必須以分號結尾。但預處理命令,函式頭和花括號「}」之後不能加分號。結構體、聯合體、列舉型的宣告的「}」後要加「 ;」。

6.識別符號,關鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。

c語言陣列學習問題迴圈方式給陣列賦值

就是for迴圈沒學會吧。那就講一下for迴圈和陣列應用。就拿你的這個程式舉例子好了,定義了一個整型陣列a 3 然後看這段 for i 0 i 3 i for迴圈的括號裡面有三個東西,for 賦初值 迴圈條件 步長 賦初值就是給迴圈變數 相當於一個計數器 賦初值,當然也可以初始化其他的變數。第一個分號...

c語言二維陣列迴圈賦值,C語言二維陣列迴圈賦值

這個只是陣列值的大小和行列的關係而已 就代表改數的值等於所在行數的4倍加所在列數加1 c語言中怎樣實現對二維陣列元素進行賦值並輸出。可以按照下面步驟進行定義二維陣列並輸出 1 定義二維指標。2 確定內陣列維數,即行數容和列數。3 申請行數個一維指標大小空間,並賦值給二維指標。4 對於每個一維指,申請...

c語言迴圈問題,c語言for迴圈問題

include define n 3 void main int i,j for i 0 i include stdio.h int main 這是c 裡面的寫法如果是c要在使用之前定義i變數。int i 0 然後使用for迴圈 for int i 0 i 10 i for int j i j 0 ...