C++用数组输出杨辉三角的前十行

要求如下输出:11 11 2 11 3 3 1……

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
Press any key to continue
程序如下:
#include<iostream.h>
#include "string.h"
//杨辉三角
#define NUM 10
void yahui(int * result,int num);
void main(){
int yh[NUM];
memset(yh,0,sizeof(int)*NUM);

//打印
for(int i=0;i<NUM;i++){
yahui(yh,i+1);
for(int j=0;j<2*NUM-1;j++){
if(j%2!=0)
cout<<' ';
else{
if(yh[j/2])
cout<<yh[j/2];
else
cout<<' ';
}
}
cout<<endl;
}
}

void yahui(int * result,int num){
if(num == 1)
result[0] = 1;
else if(num == 2)
result[0] = result[1] = 1;
else{
int * temp;
temp = new int[num-1];
memset(temp,0,sizeof(int)*(num -1));
yahui(temp,num - 1);
result[0] = result[num -1] = 1;
for(int i=1;i<num-1;i++){
result[i] = temp[i-1] + temp[i];
}
delete temp;
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-01
#include <iostream>

using namespace std ;

const int max_line = 10 ;

void print_matrix (int matrix[][max_line], int dim) {
int i, j;
for (i = 0 ; i != dim; i++) {
for (j = 0; j != i+1; j++)
cout << matrix[i][j] << " " ;
cout << endl ;
}
}

void fill_triangle (int matrix[][max_line], int dim) {
int i, j ;

//第1位跟最后1位赋1
for (i = 0; i != dim; i++)
matrix[i][i] = matrix[i][0] = 1 ;

//从第2行到最后1行,第1列到i-1列
for (i = 2; i != dim; i++)
for (j = 1; j != i; j++)
matrix[i][j] = matrix[i-1][j-1] + matrix[i-1][j] ;
}

int main () {
int matrix[max_line][max_line] ;
fill_triangle (matrix, max_line) ;
print_matrix (matrix, max_line) ;
return 0 ;
}

C++用数组输出杨辉三角的前十行
1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 Press any key to continue 程序如下:include<iostream.h> include "string.h"\/\/杨辉三角 define NUM 10 void yahui(int * result,int num);void main(...

怎么用C++输出杨辉三角前十行
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-1]+a[i-1][j];\/*每个数是上面两数之和*\/ for(i=0;i<n;i++) \/*输出杨辉三角*\/ ...

在C++集成开发环境下编写杨辉三角程序,要前十行的,而且输出的时候是等...
main (){ int a[10][10];int i,j,k;for (i=0;i<10;i++){ a[i][0]=1;a[i][i]=1;} for (j=2;j<10;j++){ for (k=1;k<j;k++)a[j][k]=a[j-1][k-1]+a[j-1][k];} printf ("\\n杨辉三角前十行为:\\n");for (i=0;i<10;i++){ for(k=10;k>=0...

杨辉三角形用C++编程,要呢种金字塔形的,前十行。
include <iostream.h>void main(){ int i,j,n=10; int a[20][20]; for (i=0;i<n;i++) { a[i][0]=1; a[i][i]=1; } for (i=2;i<n;i++) { for (j=1;j<i;j++) { a[i][j]=a[i-1][j-1]+a[i-1][j]; } } for (i=0;i<n;i++) { f...

c++输出十行杨辉三角编译无错运行出现已停止运行
const int n=10; int a[10][10] = {0},i,j;\/\/数组初始化一下 这样数组里面就不会有垃圾数据 for(i=0;i<10;i++) { a[i][0]=1; \/\/a[i][j]=1; \/\/这里j你没有初始化,循环里也没有j } for(i=1;i<10;i++) for(j=1;j<10;j++) { a[i][j]=a[i...

c++编写程序输出五行的杨辉三角
下面是一个 C++ 程序,可以输出五行的杨辉三角:```cpp include <iostream> using namespace std;int main() { const int n = 5; \/\/ 杨辉三角的行数 int a[n][n] = {0}; \/\/ 二维数组,存储杨辉三角 \/\/ 初始化第一列和对角线上的元素为1 for (int i = 0; i < n; i++) { ...

c++基础编程题,输出杨辉三角,高手帮帮忙...
include <iostream> using namespace std;int main(){ int Array[10][10];int i=0,j=0;Array[0][0]=1;for(i=1;i<10;i++){ for(j=0;j<=i;j++){ if((j==0)||(j==i))Array[i][0]=Array[i][i]=1;else { Array[i][j]=Array[i-1][j-1]+Array[i-1][j];} ...

c++编程,打印杨辉三角形
include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int maxn=1000+10;int a[2][maxn]; int main(){printf("请输入杨辉三角层数:");int cur=0,n;cin>>n;printf("\\n");for(int i=1;i<=n;i++,cur^=1){for(int j=1;j<=i;j++)...

打印出杨辉三角形(要求打印出10行如下图)怎么用Visual C++运行部了...
楼主 的程序没有问题,我刚刚运行了一下。可能没有停留的关系,可以在程序最后一个括号内部 添加一个 system("pause");或者getch();或者getchar();都可以。望采纳!

哪位大哥帮下忙!c++写二项式(a+b)n展开后,其系数构成杨辉三角形...
printf("请输入杨辉三角的行数n:\\n");scanf("%d",&n);YangHuiTriangle(n);break;default:exit(0);} } void YangHuiTriangle(int n){ int blank;int x;int temp;int i;int j;SeqQueue Q;InitQueue(&Q);EnterQueue(&Q,1); \/\/第一行元素入队 for(i=2;i<=n+1;i++){ for(blank...

相似回答