c语言程序杨辉三角

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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");

参考技术A #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");

参考技术B 方法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");

参考技术C #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");

本回答被提问者和网友采纳
参考技术D #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语言程序杨辉三角的主要内容,如果未能解决你的问题,请参考以下文章

c语言程序杨辉三角

c语言实现输出特殊杨辉三角

C语言,杨辉三角公式

用c语言输出杨辉三角

最简单C语言编写“杨辉三角”

如何用C语言循环输出杨辉三角?