编写一个程序,首先定义一个复数数据类型,即结构类型。而后按照复数的运算规则进行计算,并按照复数表示的格式进行输出,请将程序补充完整。数组
#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是复数x和y的和
s.re=_______(1)_______;
s.im=_______(2)_______;
printf(" sum=%5d+%5di\n",s.re,s.im);
//复数p是复数x和y的积
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
(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
下面定义了一个表示平面上一点的结构体类型:atom
struct Point
{
float x; //横坐标
float y; //纵坐标
};
(1)请编写程序,输入一点的横纵坐标,输出该点到原点的距离
(2)请编写程序,输入两点p1和p2的坐标,输出两点之间的距离,以及p1关于x轴的对称点,p2关于原点的对称点,运行结果以下图所示:
[参考解答]spa