當前位置:首頁 » 編程語言 » c語言嵌套結構體輸入程序怎麼寫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言嵌套結構體輸入程序怎麼寫

發布時間: 2022-05-19 15:12:16

A. c語言結構體嵌套

定義一個學期結構體,學期結構體中的4個元素類型為成績結構體,再將這個學期結構體放到student中

B. C語言結構體的問題,一個嵌套,可是我寫的好像有問題,初學求幫助解答,謝謝

你要用結構的要先定義一個結構的變數。
book結構裡面的 struct author author; 這個結構變數定義變數名不要和結構類型名字一樣。
struct book a; //book是類型名字。後面的a才是變數名。
scanf的輸入格式控制符。%c是一個字元。如果是字元串的話是%s。
還有printf後面的參數表不要加地址符&;
還有那個循環是無意義的。。。輸入兩次。第二次覆蓋第一次。
#include <stdio.h>
struct author
{
char FirstName[20];
char LastName[20];
char sex[10];
};
struct book
{
char title[20];
float value;
struct author bk;
};
int main()
{
int i;
struct book p;
printf("輸入這本書的標題:\n");
scanf("%s",&p.title);
printf("輸入這本書的價錢:\n");
scanf("%f",&p.value);
printf("輸入這本書的作者姓和名:\n");
scanf("%s%s",&p.bk.FirstName,&p.bk.LastName);
printf("輸入作者的性別:\n");
scanf("%s",&p.bk.sex);
printf("標題:%s\n",p.title);
printf("價格:%f\n",p.value);
printf("作者的姓和名:%s%s\n",p.bk.FirstName,p.bk.LastName);
printf("作者的性別:%s\n",p.bk.sex);
return 0;
}

C. C語言結構體嵌套問題

更正如下:注意語法
#include<stdio.h>
struct
Date
{
int
month;
int
day;
int
year;
};
struct
Person
{
char
name[20];
char
sex;
struct
Date
birthday;
unsigned
num;
};
int
main(void)
{
struct
Person
p1={"WangLi",'M',12,15,1974,111000222};
struct
Person
p2;
p2=p1;
printf("zhang:%s,%c,%d-%d-%d,%lu\n",p1.name,p1.sex,p1.birthday.month,p1.birthday.day,p1.birthday.year,p1.num);
return
0;
}

D. C語言 如何在結構體中給嵌套的結構體賦值

結構體嵌套,賦初值,大括弧嵌套就可以了。
問題是你代碼寫錯了。
你定義的old1不是結構類型,而是結構變數。
在shuju中成員要寫struct old 變數名;
不能寫struct old1。
下面是演示代碼:(補充:如果想定義一個結構類型別名,要用typedef

#include <stdio.h>

struct old

{

int year;

int month;

int day;

}old1={1972, 8, 3};

struct shuju

{

char name[10];

char gender[6];

int height;

struct old old1;

char access[9];

}shuju1={"moumouren","male",175,{2019,6,29},"well"};

int main()

{

printf("結構變數old1的初值: %d %d %d ",old1.year,old1.month,old1.day);

printf("結構變數shuju1中成員old1的初值:%d %d %d ",shuju1.old1.year,shuju1.old1.month,shuju1.old1.day);

printf("我特意起一樣的名字,就是告訴你這兩個變數是不一樣的。 ");

return 0;

}

/*(補充:如果想定義一個結構類型別名,要用

typedef struct old

{

int year;

int month;

int day;

}old1;//這樣old1才表示是一個類型,然後再定義該類型變數時,才可以寫 old1 變數名;

)*/

E. 【c語言共用體】裡面嵌套有結構體,求詳解。高分懸賞。謝謝

共用體就是享用同一塊內存
在此例中
e的大小為最長元素的大小,也就是結構體out的大小,共兩個int,假設此處int為4位元組
e.c和e.d和e.out.a佔用同一塊內存,即低4位元組的內存,a.out.b佔用高4位元組內存
然後e.c=1;e.d=2;
e.c和e.d和e.out.a都為2
e.out.a=e.c*e.d = 2*2 = 4;
那麼e.c和e.d和e.out.a都變成了4
e.out.b=e.c+e.d = 4+4 = 8

F. 如何在C語言中嵌套定義結構體並VC6.0編譯通過

struct structA;
struct structB;
typedef struct structA{
int a;
structB *pb;
}structA;
typedef struct structB{
int b;
structA *pa;
}structB;
先聲明再定義,其實這個和函數聲明和定義是一樣的,咱們可以再main函數前面聲明,但是定義可以放在main函數後面,是同一個道理。樓主學過編譯原理嗎?只要聲明了,就有分配空間,雖然具體空間大小在定義處才知道,但是聲明了,就會知道有這么個東西,會預留空間。所以只要聲明就可以了

G. 關於c語言結構體嵌套的問題

早期純C編譯器要求結構體類型必須寫上struct關鍵字,不能只寫個結構體名。後來C++兼容的編譯器則允許寫結構體名就可以了。所以你在嵌套時結構體成員名前寫上struct(struct Order order;)就在什麼編譯器下都能通過了……

H. c語言嵌套結構體代碼求解

0開頭的,說明是八進制數,八進制數里沒有9,直接寫成9就好了,不要寫09,要不然就寫成0x09

I. c語言中如何用子函數調用結構體中的變數實現數據的輸入與輸出。

用子函數實現結構體數據的輸入與輸出:對於多數子函數的輸入與輸出,有一定規律性可言。
方法1:void型不傳值傳址調用與聲明。main中聲明void date_in(),void date_pout()。函數定義前一定在main()前先定義結構體變數(全局變數),然後定義輸入或輸出程序段。此時再main()調用即可。
如下:
struct student
{
char name[20];
int old;
char sex;
}stu;
void date_in();
void main()
{ date_in();
}
void date_in()
{ scanf("%s%d/c,"stu.name,stu.old,stu.sex);
}時間問題程序有點簡潔,有問題請追問,很樂意與你分享。