太可恶了,刚开始最后一个输出后有换行是PE,后来把最后一换行去掉还是PE,郁闷啊!!可是最后把最开始写的有换行的代码提交,又过了,!!之前试了好多次都没过的啊啊,题目不是要求最后一个后不加换行的吗??!!不过还是学会了最后一个后面没有换行的写法。算是有些收获,谢谢小伙伴
题目大意:
输出杨辉三角形,多组数,每组输入一n,代表三角形的行数。杨辉三角如下:
输入输出格式如下:
(明明最后一个后面没有空行的啊)
解题分析:
用二维数组定义,把三角形中是1的写出来,及第一列为1,第i行i列为1。从三行开始处理,(这里i取2),每个数值是本列上一行和上一列上一行的和,最后输出数组a[i][j].
代码:
#include<stdio.h>
#define N 33
int main()
{
int n,i,j;
int d=0;
while(scanf("%d",&n)!=EOF)
{
// d++;
// if(d>1)
// printf("\n");//最后一个之后不加空行的处理方法
int c[N][N];
for(i=0;i<n;i++)
{
c[i][i]=1;
c[i][0]=1;
}
for(i=2;i<n;i++)
{
for(j=1;j<i;j++) //第 i行i列为1
c[i][j]=c[i-1][j]+c[i-1][j-1];
}
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++){
if(j<i)
printf("%d ",c[i][j]);
else
printf("%d",c[i][j]);
}
printf("\n");
}
printf("\n");
}
return 0;
}