編寫一個程序,首先定義一個複數數據類型,即結構類型。而後按照複數的運算規則進行計算,並按照複數表示的格式進行輸出,請將程序補充完整。數組
#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