回顾大一·C语言编程12.4(1)(2)(3)+13.1(1)(2)+13.2
来源:互联网 发布:学琴屋软件怎么样 编辑:程序博客网 时间:2024/06/17 07:30
有3名学生,每个学生信息包含学号、姓名、数学成绩、英语成绩、C语言成绩和三门课程的总分。编写一个程序,对学生的各项数据进行输入、计算每个学生三门课的总分并输出。
#include <stdio.h>#include <string.h>#define N 3 //学生总人数#define M 3 //每个学生的课程数struct Student{ int num; char name[20]; float score[3]; float total;} stu[N];main(){ int i,j;for(i=0;i<N;i++) //控制学生人数 {stu[i].total=0; //每个学生课程的总分初值为0 printf("input the data of student %d:\n",i); printf("NO.:"); scanf("%d",&stu[i].num); printf("name:"); scanf("%s",stu[i].name); for(j=0;j<M;j++) //控制课程门数 { printf("score %d:",j); scanf("%f",&stu[i].score[j]);stu[i].total+=stu[i].score[j]; }printf("第%d个学生的总分为%f\n",i,stu[i].total); }}
#include<stdio.h>#include<math.h>struct Point{float x;float y;} p[2];main(){int i;for(i=0;i<2;i++){printf("请输入第%d个坐标的x和y的值:\n",i);scanf("%f%f",&p[i].x,&p[i].y);}printf("两个点的中点坐标为:\n");printf("%0.2f,%0.2f\n",(p[0].x+p[1].x)/2,(p[0].y+p[1].y)/2);printf("两点间的距离为:%4.2f\n",sqrt(pow((p[1].x-p[0].x),2)+pow((p[1].y-p[0].y),2)));}
某唱歌比赛决赛有5名选手入围,共有六位评委分别给每位选手打分;对每个选手,去掉一个最高分和一个最低分后,取剩余的四个得分的平均值作为该选手的最后得分;编程实现按选手最后得分的降序排列,依此输出选手的名次、参赛编号、姓名以及最后得分。
#include<stdio.h>#include<string.h>struct Player{int num;char name[20];float score[6];float lastscore;} a[5],t;main(){int i,j,k;float max,min;for(i=0;i<5;i++) //输入选手的各项数据{printf("请输入第%d个选手的编号和姓名:\n",i+1);scanf("%d%s",&a[i].num,a[i].name);printf("请输入六个评委对第%d个选手%s的打分:\n",i+1,a[i].name);max=-1;min=-1;for(j=0;j<6;j++){scanf("%f",&a[i].score[j]);if(max<a[i].score[j]) max=a[i].score[j]; //找出每位选手的最高、最低分if(min>a[i].score[j]) min=a[i].score[j];a[i].lastscore+=a[i].score[j];}a[i].lastscore=(a[i].lastscore-max-min)/4; //计算第i位选手的最后得分}for(i=0;i<5;i++) //排名{k=i;for(j=i+1;j<5;j++)if(a[k].lastscore<a[j].lastscore)k=j;t=a[i];a[i]=a[k];a[k]=t;}printf("各位选手排名信息如下:\n");for(i=0;i<5;i++)printf("\n第%d名:编号:%2d,姓名:%s,最终得分:%3.2f",i+1,a[i].num,a[i].name,a[i].lastscore);}
程序的功能是构造一个如下图所示的三个结点的单向静态链表,并顺序输出链表中结点的数据。阅读、输入、编译、连接,运行并观察结果。体会构造和使用静态链表的方法。
#include <stdio.h>struct node{ int data; struct node *next; /* 指向本结点类型的指针是实现链表的基础 */};main(){ struct node a,b,c,*h,*p; /* 定义三个结点 h是头指针*/ a.data=10; b.data=20; c.data=30; /* 结点的数据赋值 */ h=&a; /* 头指针指向a结点 */ a.next=&b; /* a结点的指针指向b结点 */ b.next=&c; /* b结点的指针指向c结点 */ c.next=NULL; /* c结点的指针值为空,表示最后一个结点 */ p=h; /* 遍历每一个结点,打印数据 */ while (p) { printf("%d\n ",p->data);p=p->next; /* 指针移到下一个结点 */ } }
程序的功能是构造一个如下图所示的三个结点的单向动态链表,并输出链表中相关结点的数据之和。阅读、输入、编译、连接,运行并观察结果。体会构造和使用动态链表的方法。
#include<stdio.h>#include<stdlib.h>struct node{ int num; struct node *next; };main(){struct node *p1,*p2,*p3;p1=(struct node *) malloc(sizeof(struct node));p2=(struct node *) malloc(sizeof(struct node));p3=(struct node *) malloc(sizeof(struct node));p1->num=1;p2->num=2;p3->num=3;p1->next=p2;p2->next=p3;printf("%d\n",p1->num+p1->next->num);}
以下程序的功能是:构造一个如下图所示的三个结点的单向动态链表,并输出链表中各个结点的num成员的值。
#include <stdio.h>#include<stdlib.h>struct node{ int num; struct node *next; }*p[4],*head;main(){int i;for(i=0;i<3;i++)p[i]=(struct node*)malloc(sizeof(struct node));p[i]=NULL;head=p[0]->num;for(i=0;i<3;i++){p[i]->num=i; //为各个结点的num成员赋值p[i]->next=p[i+1];printf("p[%d]->num=%d\n",i,p[i]->num);}}
阅读全文
0 0
- 回顾大一·C语言编程12.4(1)(2)(3)+13.1(1)(2)+13.2
- 回顾大一·C语言编程6.1(2)+6.2(1)(2)(3)
- 回顾大一·C语言编程14.1+14.2(1)(2)+14.3
- 回顾大一·C语言编程2.3(2)
- 回顾大一·C语言编程3.2(2)
- 回顾大一·C语言编程3.3(2)
- 回顾大一·C语言编程3.4(2)
- 回顾大一·C语言编程4.1(2)
- 回顾大一·C语言编程4.2(2)
- 回顾大一·C语言编程4.3(2)
- 回顾大一·C语言编程5.2(2)
- 回顾大一·C语言编程5.3(2)
- 回顾大一·C语言编程2.3(1)
- 回顾大一·C语言编程3.2(1)
- 回顾大一·C语言编程3.3(1)
- 回顾大一·C语言编程3.4(1)
- 回顾大一·C语言编程4.1(1)
- 回顾大一·C语言编程4.2(1)
- 分页设计(加搜索)
- 哈理工oj 1612 方格问题
- redis高级
- linux常用基本命令
- Codeforces Round #363 (Div. 2) D Fix a Tree(并查集)
- 回顾大一·C语言编程12.4(1)(2)(3)+13.1(1)(2)+13.2
- WPF学习——绑定到变量
- 文章标题
- 对象比较器
- 利用辗转相除法求两个正整数的最大公约数
- HTML5触摸事件
- Linux操作复习
- [Offer收割]编程练习赛29 题目3 : 最大得分(DP)
- 欢迎使用CSDN-markdown编辑器