c语言程序杨辉三角

下列程序要求实现为打印出以下的杨辉三角形(要求打印出10行)的功能。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
请改正程序中的错误。不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 10
void main()
{
int i,j,a[N][N];
for(i=0;i<N;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=1;i<N;i++)
for(j=0;j<N;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<N;i++)
{
for(j=0;j<i;j++)
printf(“\n”);
}
讲讲错在哪?在线等 急求~

我很久之前写过这个,但是当时用的是栈区数组固定长度,你改成动态数组即可。

void main()

{

int a[10] = { 1 };               

for (int i = 0; i < 10; i++)     //用循环打印第一行

{

if (a[i] == 0)               

{                             

printf("%4c",' ');        

}

else

printf("%4d", a[i]);

}

//先输出第一行之后再进行循环

for (int j = 2; j <= 10; j++)            

{

printf("\n");                     //回车输入第二行

// printf("1 ");                    //输入每一行开头的1

for (int i = 9; i >= 0; i--)

{

if (i != 0)                    //实现每行的第一个数均为一,后面的数才开始符合规则

{

a[i] = a[i] + a[i - 1];

}

else

a[i] = 1;

}

for (int i = 0; i < 10; i++)          //打印每一行

{

if (a[i] == 0)

printf("%4c",' ');

else

printf("%4d ", a[i]);

}

}

system("pause");

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2007-10-30
#include "stdio.h"
main()
{
int a[11][20],i,j;
//初始化
for(i=0;i<11;i++)
for(j=0;j<20;j++)
a[i][j]=0;
//给数组附值
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
{
if(j<1)a[i][j]=1;//开头的第一个数为1
else if(i==0)break;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
//杨辉三角的规律
}
}
//输出
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
第2个回答  2012-11-21
方法1:

#include <stdio.h>
main()
{
int i,j,a[10][10]; /*10行10列的杨辉三角*/
for(i=0;i<10;i++) /*先赋值两边*/
{
a[i][0]=1;
a[i][i]=1;
}

for(i=2;i<10;i++) /* 计算中间的数值 */
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=0;i<10;i++) /* 输出部分 */
{
for(j=0;j<i+1;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}

方法2:
#include<stdio.h>
main()
{
long i,j,n,k;
printf("请输入要输出的杨辉三角的行数:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
k=1;
for(j=1;j<=i;j++)
{
printf("%5ld",k);
k=k*(i-j)/j;
}
printf("\n");
}
}
第3个回答  推荐于2017-11-26
#include <stdio.h>
#define N 10
void main()
{
int i,j,a[N][N];
for(i=0;i<N;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<N;i++) /*次此处下标从2开始*/
for(j=1;j<i;j++) /*此处下标从1开始*/
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<N;i++)
{
for(j=0;j<=i;j++)
printf("%d ",a[i][j]); /*不知道是你漏了这行还是怎么样,总之打印出来时必须的*/
printf("\n");
}
}本回答被提问者和网友采纳
第4个回答  2010-04-17
#include<stdio.h>
main(){
int a[10][10],i,j,k; /*k是用来控制缩进长度的*/
for(i=0;i<10;i++){
for(j=0;j<=i;j++){
if(j==0||j==i){
a[i][j]=1;
} else{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
}

for(i=0;i<10;i++){

for(k=1;k<=(10-i);++k)
printf(" ");/*有三个空格,根据后面输出项的宽度决定,即后面的1/2*/

for(j=0;j<=i;j++){
printf("%6d",a[i][j]);/*最好设为偶数个宽度,根据你写的程序,其实4就合适了*/
}
printf("\n");
}
getchar();/*方便查看结果而设的暂停*/
}

C语言编写程序,打印一个7行的杨辉三角形
defineN7\/\/以7行7列为例 intmain(){ inta[N][N];\/\/N行N列的杨辉三角 inti,j;for(i=0;i<N;i++)\/\/先赋值两边 { a[0]=1;a=1;} for(i=2;i<N;i++)\/\/计算中间的数值 { for(j=1;j<i;j++)a[j]=a[i-1][j-1]+a[i-1][j];} for(i=0;i<N;i++)\/\/输出部分...

C语言编程输出杨辉三角形(要求输出10行)?
include<stdio.h> int main(){ int n,i,j,a[100];n=10;printf(" 1");printf("\\n");a[1]=a[2]=1;printf("%3d%3d\\n",a[1],a[2]);for(i=3;i<=n;i++){ a[1]=a[i]=1;for(j=i-1;j>1;j--)a[j]=a[j]+a[j-1];for(j=1;j<=i;j++)printf("%3d",...

C语言中怎么写杨辉三角啊?
杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。这是杨辉三角:代码如下:include <stdio.h> include <stdlib.h> const int length = 10; \/\/ 定义杨辉三角的大小 int main(void){ int nums[length][length];int i, j;\/*计...

c语言程序杨辉三角
在C语言中,杨辉三角是一个经典的动态数组应用实例。如果你之前使用的是固定长度的栈区数组,现在需要转换成动态数组来实现。以下是相应的代码段:以下是使用动态数组实现杨辉三角的C语言代码:void main() { int* a = malloc(sizeof(int) * 10); \/\/ 动态分配数组内存 a[0] = 1; \/\/ 初始化...

用c语言编写程序 输出杨辉三角
"\\n");} return 0;} 应用 与杨辉三角联系最紧密的是二项式乘方展开式的系数规律,即二项式定理。例如在杨辉三角中,第3行的三个数恰好对应着两数和的平方的展开式的每一项的系数(性质 8),第4行的四个数恰好依次对应两数和的立方的展开式的每一项的系数。以上内容参考:百度百科-杨辉三角 ...

用C语言编写5行`杨辉三角~~急```
\/\/将第一行存入队列中,第一行只有1一个元素 printf("please put in a integer number(no more then 15)!\\n\\t");scanf("%d",&num);\/\/fun()函数实现输出一行元素并计算出下一行各个元素,经过num次调用fun函数输出num层杨辉三角 for (i=0;i<num;i++)sq=fun(i,sq);return 0;} ...

c语言问题,求杨辉三角
在探讨如何使用C语言实现杨辉三角时,我们可以先明确其定义。杨辉三角是一个等腰三角形排列的数字数组,每一行的数字都与组合数紧密相关。以二维数组的方式进行实现,每一项都等于上一行的左边和中间的两个数的和。具体实现代码如下:我们定义一个二维数组`a[100][100]`来存储杨辉三角的每一项。接下来,...

C语言,输出杨辉三角
for(i=0;i<=9;i++){ a[i][0]=1;\/\/原代码此处需修改,第一位数为1 a[i][i]=1;}for(i=1;i=9;i++)for(j=1;j<i;j++)\/\/原代码此处需修改 a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<=9;i++){ for(j=0;j<=i;j++){printf("%5d\\t",a[i][j])...

如何用C语言输出杨辉三角形的前10行?
输出杨辉三角形的前10行如下:杨辉三角是一种数学图形,它是由中国古代数学家杨辉所发明的,因此得名为杨辉三角。它是一个三角形,其中的每个数字都是由上面的两个数字相加而来的。杨辉三角在数学中有着广泛的应用,尤其是在组合数学和概率论中。在本文中,我们将使用C语言编写程序来输出杨辉三角的前10...

用c语言输出杨辉三角
C语言实现输出n层杨辉三角,注意n>34时会导致长整型溢出,参考代码如下:include<stdio.h>int main(){int i,j,n;long a[34]={1};scanf("%d",&n);if(n>34)return 1;for(i=0;i<n;i++){for(j=i;j>0;j--)a[j]=a[j]+a[j-1];for(j=0;j<=i;j++)printf("%ld ",a[j...

相似回答