C语言实践-结构体

【项目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;
}

[参考解答]markdown


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

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

#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)请在上面的程序的基础上增长功能,使运行结果以下图:
这里写图片描述
其中,须要作出的改动是:ui

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

【项目3-点结构体】

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

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

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

[参考解答]spa

相关文章
相关标签/搜索