woshiyyp 2017-05-10 09:45 采纳率: 50%
浏览 1559

杨辉三角传参填空,求帮助,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条回答 默认 最新

  • coolsunxu 2017-05-12 09:55
    关注
     #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; 
    }
    }
    

    图片说明

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器