基础题杨辉三角,直接二维数组,先预先生成30层杨辉三角,然后直接输出即可
还是输入的坑,在while里面没有判断scanf是否等于EOF导致出现了OLE,出OLE的时候自己也猜测是因为最后多输出了一个空行。。。
#include <stdio.h>
#include <iostream>
#include <math.h>
#include <fstream>
using namespace std;
int yanghuiT[30][30];
int preCal()
{
for(int i=0;i<30;i++)
{
for(int j=0;j<30;j++)
{
yanghuiT[i][j] = 0;
}
}
for(int i=0;i<30;i++)
{
for(int j=0;j<=i;j++)
{
if(j == 0 || j == i)
yanghuiT[i][j] = 1;
else
yanghuiT[i][j] = yanghuiT[i-1][j-1]+yanghuiT[i-1][j];
}
}
return 1;
}
void main()
{
preCal();
// fstream file;
// file.open("G:\\test1.txt");
int n;
while(scanf("%d",&n) != EOF)//此处不添加 != EOF的话会出现多输出空行的问题
{
for(int i=0;i<n;i++)
{
for(int j=0;j<=i;j++)
{
if(j != 0)
{
printf(" ");
//file<<" ";
}
printf("%d",yanghuiT[i][j]);
//file<<yanghuiT[i][j];
}
printf("\n");
//file<<endl;
}
printf("\n");
//file<<endl;
}
}