本文目录一览:
- 1、杨辉三角,c语言编程,数组解决
- 2、C语言初学者 关于输出前十行杨辉三角
- 3、用c语言打印杨辉三角 非数组,我只求过程,不求答案
- 4、c语言编程,打印杨辉三角,要求打印的行数由键盘输入,并且不得使用二维数组
- 5、C语言利用一维数组编写杨辉三角
杨辉三角,c语言编程,数组解决
#includestdio.h
void main()
{
int a[10][10];
int i,j;
for(i=0;i10;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];
}
printf("%-5d",a[i][j]);
}
printf("\n");
}
}
C语言初学者 关于输出前十行杨辉三角
你加了很多多余的括号,把你自己弄糊涂了吧,哈
printf输出x1/x2的位置不对,应该放在最里面的循环里
我把主循环体给你稍微改了一下就好了
for(m=1;
m=10;
m++)
{
for(n=0;
n=m;
n++)
{
if(n==m||n==0)
x2=f1(m);
else
x2=f2(m,n);
x1=f1(m);
printf("%3d",
x1/x2);
}
printf("\n");
}
两个计算阶乘的函数都没问题
用c语言打印杨辉三角 非数组,我只求过程,不求答案
不知道我这样解释能不能说清楚:
可以看看杨辉三角的定义,百科里介绍了一个杨辉三角的第六个性质,具体是:
6、第n行的第1个数为1,第二个数为1×(n-1),第三个数为1×(n-1)×(n-2)/2,第四个数为1×(n-1)×(n-2)/2×(n-3)/3…依此类推。
而程序中的i是表示第i行,那么上面的性质6里的n就是程序中的i,而k是保存了1×(n-1)×(n-2)/2×(n-3)/3...的值,其中(n-1)、(n-2)、(n-3)...中的1,2,3...是j的值。
比方说,一开始k=1,执行了一次内循环后,k=k*(i-j)/j 就是k=1×(n-1)/1;那么第二次循环执行k=k*(i-j)/j,就等于执行了1×(n-1)×(n-2)/2……依次类推,应该能明白了吧!
c语言编程,打印杨辉三角,要求打印的行数由键盘输入,并且不得使用二维数组
#includestdio.h
#include"string.h"
int a[10000]; //容器,由n*(n+1)/2=10000可知,n=141
int b=3,CR,i; //b为当前行数,CR为要求显示的行数,i为循环数
int YHSJ(int CR)
{
a[1]=a[2]=1; //前两行数值少且全为1,故直接输出
printf("%d\n",a[1]);
printf("%d %d\n",a[1],a[2]);
while(b=CR) //从第三行开始判断
{
for(i=b;i=2;i--)//从倒数第一个数开始加
{
a[i]=a[i]+a[i-1]; //杨辉三角的规律,没有值的数组默认为0
}
for(i=1;i=b;i++) //显示循环
{
printf("%d ",a[i]);
}
printf("\n"); //显示完一行换行
b++; //下一行
}
return 0;
}
void main()
{
printf("请输入要显示的行数(3~141):");
scanf("%d",CR);
YHSJ(CR);
}
C语言利用一维数组编写杨辉三角
#include stdio.h
#define N 10 /* 要打印的层数 */
int main(void)
{
int arr[N]; /* 用于保存生成的杨辉三角的每一行的值 */
int i, j;
arr[0] = 1; /* 杨辉三角的第一层 */
/* 先把第一层打印出来 */
printf("%5d\n", arr[0]);
arr[1] = arr [0] = 1;//这样写是为了表明算法。
printf("%5d%5d\n", arr[0], arr[1]);
/* 不断地求杨辉三角的每一层 */
for (i = 2; i N; i++) /* i代表当前层用到的arr的最大下标 */
{
arr[i] = arr[i-1]; /* 把最外边的1外移一位 */
for(j = i-1; j0; j--)//每一行的a[0],始终为1,不用计算。
/* 用杨辉三角的性质求出层里里面的每一个数 */
{
/* 杨辉三角的性质就是这句 */
arr[j] = arr[j - 1] + arr[j];
}
/* 求出一行后,马上打印出此行 */
for (j = 0; j = i; j++)
{
printf("%5d",arr[j]);
}
printf("\n");
}
return 0;
}