當前位置:首頁 » 編程語言 » c語言結構體題目

c語言結構體題目

發布時間: 2025-02-08 11:46:01

A. C語言結構體問題

朋友 你碰上的是經典錯誤
首先第一個錯 pn->b/n.a*++pn->b 翻譯之後變成 b/a*(++b) = 3/1*4 = 12

第二個錯 即使按照你所描述的想法 估計按照你寫的程序 你會這樣改 :
pn->b/n.a*(++pn)->b
你肯定認為 (++pn)->b 是指向 c (也就是5.0)的吧 你試著運行 同樣錯 結果為0

根本原因:知識點理解---指針類型(此處為結構體指針)
struct x *pn 代表了pn是一個指向 struct x 類型的指針,所以,當 執行 (++pn)時,pn指針指向的地址增加的數量 等於 struct x 的位元組數 也就是 int + int + float 的位元組數 所以指向一個未知的空間 (此處的值默認為0)------------------所以並非樓主認為的變成指向 c
知識點類比:int *p = &n,當執行(++p) ,p指向的地址增加 int 的位元組數
float *p = &n 當執行(++p) ,p指向的地址增加 float 的位元組數
餘下同理......

B. C語言結構體編程題,求助大神啊

根據題意:

一、教師信息定義為結構體,其成員年月也為結構體(可直接定義成兩個成員變數,本題沒有強制要求),婚姻狀態採用共用體類型。

二、輸入信息直接寫在main函數,實際軟體開發應單獨寫輸入函數,輸入驗證我只寫了性別和婚姻狀態的驗證,其餘成員的輸入驗證需要自己添加。(實際開發,驗證也應單獨寫函數調用)。

三、輸出單獨函數。

#include <stdio.h>

typedef union maType//結婚狀態共用體

{

int type;//0未婚1已婚2離異

}MTE;

typedef struct s_date

{

int year;

int month;

}SDATE;

typedef struct teacher

{

char idNum[20];

char name[20];

int sex;//0女1男

SDATE date;

MTE mtype;

char dtName[100];//工作部門名稱

}TEER;

void printfTinfo(TEER tInfo);

int main()

{

TEER tInfo;

printf("輸入一名教師信息: ");

printf("工資卡號(20個字元):"),scanf("%s",tInfo.idNum);

printf("姓名(20個字元):"),scanf("%s",tInfo.name);

do

printf("性別(0女1男):"),scanf("%d",&tInfo.sex);

while(tInfo.sex!=0 && tInfo.sex!=1);

printf("出生年月(格式:YYYY MM):"),scanf("%d%d",&tInfo.date.year,&tInfo.date.month);

do

printf("婚姻狀態(0未婚1已婚2離異):"),scanf("%d",&tInfo.mtype.type);

while(tInfo.mtype.type!=0 && tInfo.mtype.type!=1 && tInfo.mtype.type!=2);

printfTinfo(tInfo);

return 0;

}

void printfTinfo(TEER tInfo)

{

printf(" ---------------- 輸入的信息為: ");

printf("工資卡號:%s ",tInfo.idNum);

printf("姓名:%s ",tInfo.name);

printf("性別:%s ",tInfo.sex?"男":"女");

printf("出生年月:%04d-%02d ",tInfo.date.year,tInfo.date.month);

printf("婚姻狀態:");

switch(tInfo.mtype.type)

{

case 0:printf("未婚 ");break;

case 1:printf("已婚 ");break;

case 2:printf("離異 ");break;

}

}

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:645
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:936
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:632
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:821
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:731
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1066
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:299
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:160
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:850
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:763