c++高手帮帮我。
来源:百度知道 编辑:UC知道 时间:2024/09/12 21:48:10
我想输出十行杨辉三角,想把它弄成,十行十九列的矩阵,可不知道空格怎末输出,请看一下面的程序怎样继续编下去,直到成功输出。谢谢了!!
#include "iostream"
#include "iomanip"
using namespace std;
void main()
{int i,j,m,a[10][19];
for(i=0;i<10;i++)
{a[i][i+10]=1;}
for(i=1;i<10;i++)
{a[i][i+8]=1;}
for(i=2;i<10;i++)
{for(j=3;j<=19;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j+1];}
cout<<"杨辉三角为"<<endl;
for(i=0;i<10;i++)
#include "iostream"
#include "iomanip"
using namespace std;
void main()
{int i,j,m,a[10][19];
for(i=0;i<10;i++)
{a[i][i+10]=1;}
for(i=1;i<10;i++)
{a[i][i+8]=1;}
for(i=2;i<10;i++)
{for(j=3;j<=19;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j+1];}
cout<<"杨辉三角为"<<endl;
for(i=0;i<10;i++)
其实比较好办的
首先定义数组的时候全部元素初始化为0(a[10][19]= {0};),然后当数组元素为0时输出空格,不为0时直接输出元素值即可以了
#include "stdafx.h"
#include <iostream>
#include <iomanip>//对输出格式的控制
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int a[10][19]={0};
for(int i=0;i<10;i++){
a[i][0]=1;
}
a[1][1]=1;
for(int i=1;i<10;i++){
for(int j=1;j<=i;j++){
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
cout <<"杨辉三角为:"<<endl;
for(int i=0;i<10;i++){
for(int j=0;j<19;j++){
if(a[i][j]!=0){
cout <<setw(5)<<a[i][j];
} //setw(5)是是输出的每个数占有5个字符的宽度
}
cout <<endl;
}
return 0;
}