好文档 - 专业文书写作范文服务资料分享网站

c语言实验答案

天下 分享 时间: 加入收藏 我要投稿 点赞

c语言实验答案

Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

n\ printf(\number:\ scanf(\ printf(\number\ scanf(\ printf(\follows:\\n\ printf(\b); printf(\b); printf(\b); printf(\/b); .+1/n!的值。 #include<> void main() { int n,p=1,i; float sum=0; printf(\ scanf(\ for(i=1;i<=n;i++) { p=p*i; sum+=p; } printf(\ } .14 p=j; switch(p) umber); for(j=0;j<3;j++) printf(\); printf(\

ave=%.2f\\n\er);

printf(\ for(j=0;j<3;j++)

scanf(\ } }

void main() { struct student stu[3]; //定义结构体数组 input(stu); //数组名做参数,传递的是地址 output(stu); }

//静态链表的建立,有三个学生,包括学号(sno char(8)),姓名

(sname char(20)),分数(grade float[]),

//定义结构体类型数组存学生信息,使用链表所有学生,实现链表的输入输出。

//静态的书上有原题目,我写成动态的了,用子函数的方式实现 #include <> #include<> #include <>

struct stu //定义全局结构体 { char sno[8]; char sname[20]; float grade; struct stu *next; } ;

//////////////////////////////////////////////////////// void main( ) { struct stu *creat(struct stu *); void print(struct stu*); struct stu *head; head=NULL; head=creat(head); print(head); }

////////////////////////////////void print(struct stu *head) ///////////////////////// //输出链表 struct stu *creat(struct { stu*head) //建立链 struct stu *p; 表 //设游标指针 { p=head; struct stu *p,*q; //取得链表的头指针 q=(struct printf(\stu*)malloc(sizeof(struct stu)); -----------\\n\ //分配空间 printf(\sno:\ scanf(\ printf(\sname:\ scanf(\ printf(\grade:\ scanf(\ head=q; while(q->grade!=0) //当分数为0时结束 { p=(struct stu*)malloc(sizeof(struct stu)); printf(\sno:\ scanf(\ printf(\sname:\ scanf(\ printf(\grade:\ scanf(\>grade); q->next=p; q=p; } q->next=NULL; return head; //返回链表的头指针 } //////////////////////////////////////////////////////////

while(p->next!=NULL) { printf(\>sno); printf(\>sname); printf(\>grade); printf(\----------\\n\ p=p->next; } } //递归方法实现快速排序算法。快速排序的基本原理是: //(1)选择一个充当划分较小和较大元素的界限的元素,称其为基准值。 //(2)将数组中的元素重新排列使得较大元素向数组尾端移动,较小元素向数组首端移动。 //如此在形式上将数组分成两部分,界限左边元素都小于基准值,而界限右边元素都大于基准值,此过程称为分解。 //在分解完成后,充当界限的数组首元素可能需要和中间某元素对调。 //(3)排序两个子数组中元素。因为基准值左边元素都小于基准值右边元素,所以将两个子数组分别排序后即使得整个数组有序。 #include<> #define N 10 void main() {

void fun(int *,int,int); if(right>i) //当右边 int i,a[N]; 部分有值(right>i),递归右半边 printf(\ fun(p,i,right); array:\ } for(i=0;i

void fun(int *p,int left,int right) { int

i=left,j=right,middle,temp; middle=p[(left+right)/2]; //求中间值 while(i<=j) //如果两边扫描的下标交错,就停止 { while((p[i]middle) && (j>left))//从右扫描小于中值的数 j--; if(i<=j) //找到了一对值,交换 { temp=p[j]; p[j]=p[i]; p[i]=temp; i++; j--; } } if(left

c语言实验答案

c语言实验答案Documentserialnumber【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】n\printf(\number:\scanf(\printf(\number\scanf(\printf(
推荐度:
点击下载文档文档为doc格式
5ugbu7fxld1is530855j3blzb1bwa600hpl
领取福利

微信扫码领取福利

微信扫码分享