c语言实验答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言实验答案Prepared on 21 November 2021
n");
printf("The first number:");
scanf("%d",&a);
printf("The second number");
scanf("%d",&b);
printf("Results as follows:\n");
printf("%d+%d=%d\n",a,b,a+ b);
printf("%d-%d=%d\n",a,b,a-b);
printf("%d*%d=%d\n",a,b,a* b);
printf("%d+%d=%f\n",a,b,*a /b); .+1/n!的值。
#include<>
void main()
{
int n,p=1,i;
float sum=0;
printf("please input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
p=p*i;
sum+=p;
}
printf("sum=%f\n",sum);
}
.14
p=j;
switch(p) umber);
for(j=0;j<3;j++)
printf("%",stu[i].score[j] );
printf("
ave=%.2f\n",average(stu[i]));umb er);
printf("score:");
for(j=0;j<3;j++)scanf("%f",&(stu[i].score[j]));
}
}
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);
}
///////////////////////////////////////////////////////// struct stu *creat(struct stu*head) //建立链表 { struct stu *p,*q; q=(struct stu*)malloc(sizeof(struct stu)); //分配空间 printf("please input sno:"); scanf("%s",q->sno); printf("please input sname:"); scanf("%s",q->sname); printf("please input grade:"); scanf("%f",&q->grade); head=q; while(q->grade!=0) //当分数为0时结束 { p=(struct stu*)malloc(sizeof(struct stu)); printf("please input sno:"); scanf("%s",p->sno); printf("please input sname:"); scanf("%s",p->sname); printf("please input grade:"); scanf("%f",&p->grade); q->next=p; q=p; } q->next=NULL; return head; //返回链表的头指针 } //////////////////////////////////////////////////////////
void print(struct stu *head) //输出链表 { struct stu *p; //设游标指针 p=head; //取得链表的头指针 printf("data:\n----------------------\n"); while(p->next!=NULL) { printf("%s\n",p->sno); printf("%s\n",p->sname); printf("%f\n",p->grade); printf("----------------------\n"); p=p->next; } } //递归方法实现快速排序算法。快速排序的基本原理是: //(1)选择一个充当划分较小和较大元素的界限的元素,称其为基准值。 //(2)将数组中的元素重新排列使得较大元素向数组尾端移动,较小元素向数组首端移动。 //如此在形式上将数组分成两部分,界限左边元素都小于基准值,而界限右边元素都大于基准值,此过程称为分解。 //在分解完成后,充当界限的数组首元素可能需要和中间某元素对调。 //(3)排序两个子数组中元素。因为基准值左边元素都小于基准值右边元素,所以将两个子数组分别排序后即使得整个数组有序。 #include<> #define N 10 void main() {