c语言的简单问题
#include <stdio.h>#define N 20void ysz( int a[][N],int n){ int i,j; for(i=0;i<n;i++) { a[i][0]=1; a[i][i]=1; } for(i=2;i<n;i++) { for(j=1;j<i-1;j++) { a[i][j]=a[i-1][j-1]+a[i-1][j]; } }}void put( int a[][N],int n){ int i,j; for(i=0;i<n;j++) { for(j=0;j<=i;j++) { printf("%4d",a[i][j]); } printf(" "); }}void main(){ int a[N][N]={0},n; scanf("%d",&n); ysz( a,n); put( a,n);}
这是杨辉三角的代码 不知哪里错了,烦请大佬看看
程序有两个错, 一个是在put函数中
for(i=0;i<n;j++)
前面的循环变量是i,后面写成j++了
改为i++就可以了
二是,在ysz函数中,计算a[i][j]=a[i-1][j-1]+a[i-1][j];的循环
for(j=1; j<i-1; j++)
要改为
for(j=1; j<=i; j++)
这样就可以了
测试结果
c语言就没有简单问题
下一篇:请问这个激活代码多少
热门标签: