首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

打印杨辉三角,该怎么解决

2012-04-21 
打印杨辉三角#include iostream#include iomanipusing namespace stdint main(){const int n10int

打印杨辉三角
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
const int n=10;
int i,j,a[n][n];


for(i=0;i<n;i++) //三角形 第一列为1 腰上为1
{
a[i][i]=1;
a[i][1]=1;
}

for(i=3;i<n;i++)  
for(j=2;j<i-1;j++)
a[i+1][j]=a[i][j-1]+a[i][j-1]; //每个数字等于上一行的左右两个数字之和


for(i=1;i<n;i++) // 输出 三角形  
for(j=1;j<=i;j++)
{
cout<<setw(5)<<a[i][j]<<" ";  
cout<<endl;
}

return 0;

这段程序 看了半天不知道是哪里出错了 大家 指点指点 感谢
}

[解决办法]

C/C++ code
#include <iostream>#include <iomanip>using namespace std;int main(){    const int n=10;    int i,j,a[n][n];            for(i=0;i<n;i++) //三角形 第一列为1 腰上为1    {        a[i][i]=1;        a[i][1]=1;    }        for(i=2;i<n-1;i++)   // i<n下面i+1数组会溢出        for(j=2;j<=i;j++)  // j应该少于等于i            a[i+1][j]=a[i][j-1]+a[i][j]; //每个数字等于上一行的左右两个数字之和                        for(i=1;i<n;i++)// 输出 三角形         {            for(j=1;j<=i;j++)            {                cout<<setw(5)<<a[i][j]<<" ";               //    cout<<endl;   //换行要放在下面            }            cout<<endl;        }                        return 0;                //        这段程序 看了半天不知道是哪里出错了 大家 指点指点 感谢}
[解决办法]

#include<stdio.h>

int main()
{
 int n=10;
 int i,j,a[11][11];


for(i=1;i<=n;i++) //三角形 第一列为1 腰上为1
 {
 a[i][1]=1;
 a[i][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++) // 输出 三角形
 { for(j=1;j<=i;j++)
 {
printf("%d",a[i][j]);
 }
 printf("\n");
 }
 return 0;

}

[解决办法]


#include<iostream>
using namespace std;
int main()
{
 int n;
 int i,j,a[100][100];
cin>>n;
 while(n)
 {
for(i=1;i<=n;i++) 
 {
 a[i][1]=1;
 a[i][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++)
 { 
for(j=1;j<=i;j++)
cout<<a[i][j]<<' ';
cout<<endl;
 }
cout<<endl;
 scanf("%d",&n);
}
 return 0;

}

热点排行