C语言实践-结构体

来源:互联网 发布:xps分析软件下载 编辑:程序博客网 时间:2024/05/18 02:04

【项目1-复数结构体】

编写一个程序,首先定义一个复数数据类型,即结构类型。然后按照复数的运算规则进行计算,并按照复数表示的格式进行输出,请将程序补充完整。

#include <stdio.h>struct complex{    int re;    int im;};int main(){    struct complex x,y,s,p;    scanf("%d%d",&x.re,&x.im);    scanf("%d%d",&y.re,&y.im);    //复数s是复数xy的和    s.re=_______(1)_______;    s.im=_______(2)_______;    printf("   sum=%5d+%5di\n",s.re,s.im);    //复数p是复数xy的积    p.re=_______(3)_______;    p.im=x.re*y.im+x.im*y.re;    printf("   product=%5d+%5di\n",p.re,p.im);    return 0;}

[参考解答]


【项目2-学生成绩处理】

(1)定义学生结构体,在结构体数组中,输入了学生学号和两门课的成绩,计算均分后,输出成绩单,请在下面的程序基础上,将程序补充完整。
这里写图片描述

#include <stdio.h>#define N 100  /*N表示最多允许的学生人数*/struct Student{   int num; //学号   int c; //C语言成绩   int math; //数学成绩   float aver;  //两科均分};int main( ){   int n;   //定义结构体数组存放多名同学的成绩   struct Student stu[N];   printf("请输入学生人数: ");   scanf("%d", &n);   printf("请输入学号、C和数学课的成绩: \n");   //输入数据   //输出成绩单   return 0;} 

(2)请在上面的程序的基础上增加功能,使运行结果如下图:
这里写图片描述
其中,需要做出的改动是:

  • 计算每名学生的学分绩——各科成绩乘以学分的和,再除以总学分(本题中,C语言和数学课的学分分别是3和4);
  • 计算各科的均分;
  • 输出得奖学金的同学学号清单——奖学金规则是,学分绩要高于80且没有挂科。
    [参考解答]

【项目3-点结构体】

下面定义了一个表示平面上一点的结构体类型:

struct Point  {      float x;  //横坐标    float y;  //纵坐标};  

(1)请编写程序,输入一点的横纵坐标,输出该点到原点的距离
(2)请编写程序,输入两点p1和p2的坐标,输出两点之间的距离,以及p1关于x轴的对称点,p2关于原点的对称点,运行结果如下图所示:

[参考解答]


4 2