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

相關文章
相關標籤/搜索