打印杨辉三角,该怎么解决
打印杨辉三角
#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;
这段程序 看了半天不知道是哪里出错了 大家 指点指点 感谢
}
------解决方案--------------------
#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;
}