杨辉三角传参填空,求帮助,C++新手

#include
#include
using namespace std;
int* YangHuiData(int n); //n是杨辉三角形的行数
void YangHuiShow(int *pData,int n);//在屏幕上打印杨辉三角形
int main() {
int n
cout<<”请输入杨辉三角形的行数”< cin>>n
//计算杨辉三角并保存到二维数组

int *pData = YangHuiData(n);
//在屏幕上打印等腰三角形的杨辉三角
YangHuiShow(pData,n);

//n是杨辉三角形的行数
int* YangHuiData(int n){
int *a = new int[n*n];
//完成杨辉三角形的计算,没有显示的位置填0
return a;
}
void YangHuiShow(int *a,int n){
//根据数据a指向的二维数组在屏幕上打印
//杨辉三角形,每行前面填充合适的空格
//以显示成等腰三角形,左右对称
}
下面是普通的杨辉三角程序

#include
#include
using namespace std ;
#define N 200
int main()
{
int a[N][N]={{1},{1,1}};
int i,j,n;
cout << "input n: ";

do { cin >> n; }while(n>=N); //防止越界
for(i=2;i<n;i++) //数组赋值
{
a[i][0]=1;
a[i][i]=1;
for( j=1;j<i;j++ )
a[i][j]=a[i-1][j-1]+a[i-1][j];

} 
for( i=0;i<n;i++ ) 
{ 
    for( j=0;j<n-i-1;j++ )  
        cout << setw(3) << " " ;//前导空格,为单个数据的一半宽度  
    for( j=0;j<=i;j++ ) 
        cout << setw(6) << a[i][j] ; 
    cout<<endl; 
} 

}
我想知道如何通过上述题目手段完成杨辉三角

1个回答

 #include<iostream>
#include<iomanip>
using namespace std; 
int* YangHuiData(int n); //n是杨辉三角形的行数 
void YangHuiShow(int *pData,int n);//在屏幕上打印杨辉三角形 
int main() { 
int n;
cout<<"请输入杨辉三角形的行数";
cin>>n;
//计算杨辉三角并保存到二维数组
int *pData = YangHuiData(n); 
//在屏幕上打印等腰三角形的杨辉三角 
YangHuiShow(pData,n);
//n是杨辉三角形的行数 
}

int* YangHuiData(int n) { 
int *a = new int[n*n]; 
//完成杨辉三角形的计算,没有显示的位置填0 
int i,j;
for(i=0;i<n*n;i++) {
    a[i]=0;
} 

a[0]=1;
a[n]=1;
a[n+1]=1;

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

return a; 
} 
void YangHuiShow(int *a,int n){ 
//根据数据a指向的二维数组在屏幕上打印 
//杨辉三角形,每行前面填充合适的空格 
//以显示成等腰三角形,左右对称 
int i,j;
for( i=0;i<n;i++ ) 
{ 
    for( j=0;j<n-i-1;j++ )  
        cout << setw(3) << " " ;//前导空格,为单个数据的一半宽度  
    for( j=0;j<=i;j++ ) 
        cout << setw(6) << a[i*n+j] ; 
    cout<<endl; 
}
}

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!