#include "stdlibh"
//声明队列类型
typedef struct node
{
int data[21];
int head,rear;
}sequeue;
int num;//杨辉三角的层数
//队列的初始化
void initial(sequeue sq)
{
sq->head=-1;
sq->rear=-1;
}
//进队 *** 作
void ensequeue (sequeue sq,int data1,int data2)
{
sq->rear++;
sq->data[sq->rear]=data1+data2;
}
//出队 *** 作
int desequeue(sequeue sq)
{
return sq->data[++sq->head];
}
//求扬辉三角的第n行,将其存入队列sq2指向的结点中
sequeue fun(int n,sequeue sq1)
{
int data1,data2=0,i;
sequeue sq2;
sq2=(sequeue )malloc(sizeof(sequeue));
initial(sq2);
//输出每行前的空格以形成三角格式
for (i=0;i<num-n;i++)
printf(" ");
//输出存储在队列中的某行元素,并计算下一行数
while(sq1->head!=sq1->rear)
{
data1=desequeue(sq1);
//处理两树之间的间隔距离
if (data1<10) printf(" %d",data1);
else if (data1<100) printf(" %d",data1);
else if (data1<1000) printf(" %d",data1);
else printf(" %d",data1);
ensequeue(sq2,data1,data2);
data2=data1;
}
sq2->data[++sq2->rear]=1;
printf("\n");
free(sq1);
return sq2;
}
int main(int argc,char argv[])
{
int i;
sequeue sq=(sequeue )malloc (sizeof(sequeue));
initial(sq);
sq->rear++;
sq->data[sq->rear]=1; //将第一行存入队列中,第一行只有1一个元素
printf("please put in a integer number(no more then 15)!\n\t");
scanf("%d",&num);
//fun()函数实现输出一行元素并计算出下一行各个元素,经过num次调用fun函数输出num层杨辉三角
for (i=0;i<num;i++)
sq=fun(i,sq);
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语言最初的标准。
工具/材料
gcc+vim(linux)或visual studio(windows)
01使用vim创建一个文件yanghuic,并打开它进行编辑。
02首先输入预处理指令 #include <stdioh>,用于调用输出函数printf。
03编译一个函数void yanghui(int n)。其中,n表示二项式的次数。
04首先,对二项式的幂次进行检查,若小于0,说明输入的次数是不合法的,直接结束打印并给出提示。
05然后定义一个(n+1)(n+1)的二维数组并初始化所有值为0。
06然后根据杨辉三角的规律给数组赋值:
每一行的第一个与最后一个数都是1;
其他的数等于该数的上面一个数与左上角的数之和。
07对杨辉三角进行输出,不相关的数组数据不输出,并注意换行。
08在main函数中对 void yanghui(int n)进行测试,选用参数为3, 7, 10。
09保存文档并进行编译输出的结果如下:
由此可以验证我们的程序是正确的。
以上就是关于用C语言编写5行`杨辉三角~~急````全部的内容,包括:用C语言编写5行`杨辉三角~~急````、大学c语言循环章节问题。(不用数组) 编写程序,输出杨辉三角形、C 语言输出杨辉三角。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)