怎么编这道题目(用c++或者c语言),谢谢!

Description:
贝贝的妹妹叫妞妞,妞妞喜欢图形,而且总是喜欢把图形倒过来欣赏。有一次,她看见杨辉三角形了,觉得很新鲜,于是就把它们大大小小地摆列出来了,好不得意哦。妞妞是个小孩,图形的摆布都是手工完成的,相信你可以编程来做,比她做得更快更好。

Input:
输入数据中包含了不多于50个的整数n(1≤n≤10)。
Output:
以n为行数,其打印出的倒杨辉三角形(每个数据占三个字符)就是妞妞所喜欢的。每个倒三角形之间没有空行,见样本输出。
Sample Input:
5
3
Sample Output:
1 4 6 4 1
1 3 3 1
1 2 1
1 1
1
1 2 1
1 1
1

三个字节的会很难看,如果真的要用三个的话你把倒数第二句的4改成三吧。
#include<stdio.h>
main()
{ int a[10][10],i,j,n,k;
printf("请输入行数:");
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<=i;j++)
if(j==0||j==i)
a[i][j]=1;
else
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=n-1;i>=0;i--)
{ for(k=n-1-i;k>0;k--)
printf(" ");
for(j=0;j<=i;j++)
printf("%-4d",a[i][j]);
printf("\n");
}
}

参考资料:自己写的

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
#include <iostream>
using namespace std;
int num[55][55];
int main()
{
int n;
num[1][1]=1;
for(int i=2;i<=52;i++)
{
for(int j=1;j<=i;j++)
if(j==1 || j==i)
num[i][j]=1;
else
num[i][j]=num[i-1][j-1]+num[i-1][j];
}
while(cin>>n)
for(int i=n;i>=1;i--)
{
for(int j=0;j<n-i;j++)
cout<<‘ ’;
for(int j=1;j<=i;j++)
cout<<num[i][j]<<‘ ’;
cout<<endl;
}
return 0;
}本回答被网友采纳
第2个回答  2012-07-29
用二维数组做,先顺着赋值,最后倒着输出 其实怎么做给你说了就好,不要想着别人给你代码,这样不能提高
相似回答