如果只是输出不保存的话,可以这样实现,不写主函数了:
void
printyanghui(int
n)
//
打印n行杨辉三角
{
int
i,
j;
for(i
=
0;
i
<
n
;
i++)
{
for(j
=
0;
j
<
n
-
i;
j
++)
printf("
");
for(j
=
0;
j
<=
i;
j
++)
{
printf("%d
",
c(i,
j));
printf("\n");
}
}
int
c(int
i,
int
j)
{
int
m,
value;
if(j
>
(i+1)
/
2)
j
=
i-j;
value
=
1;
for(m
=
0;
m
<
j;
m
++)
value
=
value
(i-m)
/
(m+1);
return
value;
}
把主函数改一下——
改动资料:
int main(int argc,char argv[]){
squeue Q;
int e,n,i=1,j,r,k,t,m,x,y;//增加m,x,y变量用于页面控制
InitQue(Q);
printf("输入需要打印杨辉三角的行数n:");
scanf("%d",&n);/////////////
for(r=1,t=n-1,k=(t>>1);t>k;r=t--);//这两行求这个三角形中最大的数
for(k+=!(n&1);k>1;r/=k--);
for(m=0;r;r/=10,m++);//求这个最大的数是多少位
Input(Q,1);/////////
t=i;
//for(i=1;i<=n-t;i++){
for(i=1;i<=(n-t)m;i++){
printf(" ");
}//
printf("1\n");
for(i=2;i<=n;i++){
r=0;
//for(k=1;k<=n-i;k++){
for(k=1;k<=(n-i)m;k++){//改成这样
printf(" ");
}
for(j=1;j<=i-1;j++){
e=outque(Q,e);
printf("%d",x=e+r);//改一下这一句
for(y=0;x;x/=10,y++);//加上这一句
for(x=0;x<m+m-y;printf(" "),x++);//加上这一句
Input(Q,e+r);
r=e;
}
printf("1\n");
Input(Q,1);
}
return 0;
}
#include <stdioh>
#define N 14
void main()
{
int i, j, k, n=0, a[N][N]; /定义二维数组a[14][14]/
while(n<=0||n>=13){ /控制打印的行数不要太大,过大会造成显示不规范/
printf("请输入要打印的行数:");
scanf("%d",&n);
}
printf("%d行杨辉三角如下:\n",n);
for(i=1;i<=n;i++)
a[i][1] = a[i][i] = 1; /两边的数令它为1,因为现在循环从1开始,就认为a[i][1]为第一个数/
for(i=3;i<=n;i++)
for(j=2;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j]; /除两边的数外都等于上两顶数之和/
for(i=1;i<=n;i++){
for(k=1;k<=n-i;k++)
printf(" "); /这一行主要是在输出数之前打上空格占位,让输出的数更美观/
for(j=1;j<=i;j++) /j<=i的原因是不输出其它的数,只输出我们想要的数/
printf("%6d",a[i][j]);
printf("\n"); /当一行输出完以后换行继续下一行的输出/
}
printf("\n");
}
:
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 [1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
参考资料:
#include<stdioh>
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",a[j]);
printf("\n");
}
return 0;
}
扩展资料:
c语言需要说明的是:
1一个C语言源程序可以由一个或多个源文件组成。
2每个源文件可由一个或多个函数组成。
3一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。
4源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。
5每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。结构体、联合体、枚举型的声明的“}”后要加“ ;”。
6标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。
参考资料:
百度百科-c语言
//递归输出杨辉三角
#include <stdioh>
int f(int m,int n)
{
if(n==0) return 1;
if(m==n) return 1;
return f(m-1,n)+f(m-1,n-1);
}
int main(int argc, char argv[])
{
int level=5,i,j,k;
for(j=0;j<level;j++)
{
for(k=level;k>=j;k--)
printf(" ");
for(i=0;i<=j;i++)
printf("%d ",f(j,i));
puts("");
}
return 0;
}
程序:
#include<stdioh>
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",a[j]);
printf("\n");
}
return 0;
}
应用
与杨辉三角联系最紧密的是二项式乘方展开式的系数规律,即二项式定理。例如在杨辉三角中,第3行的三个数恰好对应着两数和的平方的展开式的每一项的系数(性质 8),第4行的四个数恰好依次对应两数和的立方的展开式的每一项的系数。
百度百科-杨辉三角
以上就是关于编写程序 在屏幕上输出杨辉三角 c语言 循环结构全部的内容,包括:编写程序 在屏幕上输出杨辉三角 c语言 循环结构、杨辉三角c语言程序怎么修改、如何用C语言循环输出杨辉三角等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)