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语言程序杨辉三角的主要内容,如果未能解决你的问题,请参考以下文章