當前位置:九游会j9娱乐平台-九游ag登录中心网址 » 編程語言 » c語言定義結構體數組

c語言定義結構體數組-九游会j9娱乐平台

發布時間: 2024-01-14 14:01:13

『壹』 c語言定義一個具有5個元素的結構體數組,並進行初始化。寫兩個函數:1.輸出這五個學生的信息;

#include

structs
{
intnum;
charname[10];
floatscore;
};
intmain(void)
{
structsstu[5]={
{1,"xiaozhao",50.5},
{2,"xiaoqian",60.5},
{3,"xiaosun",75.5},
{4,"xiaoli",15.5},
{5,"xiaozhou",15.5}
};
floatvar=0.0f;
for(inti=0;i<5;i )
{
printf("學號:%d 姓名:%s 成績:%.2f ",stu[i].num,stu[i].name,stu[i].score);
var =stu[i].score;
}

var/=5;

printf("平均分:%.2f ",var);


return0;
}

『貳』 用c語言寫的數據結構的定義

在c語言中,結構體(struct)指的是一種數據結構,是c語言中聚合數據類型(aggregate data type)的一類。結構體可以被聲明為變數、指針或數組等,用以實現較復雜的數據結構。結構體同時也是一些元素的集合,這些元素稱為結構體的成員(member),且這些成員可以為不同的類型,成員一般用名字訪問

在c語言中,定義一個結構的一般形式為:
struct結構名
{
//成員表列
};


成員表由若干個成員組成, 每個成員都是該結構的一個組成部分。對每個成員也必須作類型說明,其形式為:「類型說明符 成員名;」。成員名的命名應符合標識符的書寫規定。例如:
struct stu
{
int num;
char name[20];
char sex;
float score;
};


在這個結構定義中,結構名為stu,該結構由4個成員組成。 第一個成員為num,整型變數;第二個成員為name,字元型數組;第三個成員為sex,字元型變數;第四個成員為score,浮點型變數。 應注意在括弧後的分號是必不可少的。

然後,當結構定義完成後,即創建了一種數據類型,可以像int、float等內置類型一樣使用,以上面定義的stu結構體來和int類型對比著看。
int a;//定義一個int類型的變數a
stu a; //定義一個stu類型的變數a
int *p; //定義一個int類型的指針p
stu *p; //定義一個stu類型的指針p
int a[10];//定義一個int類型的數組a,它有10個元素,每個元素是int類型
stu a[10];//定義一個stu類型的數組a,它有10個元素,每個元素是stu類型。

『叄』 c語言結構體數組的定義

所謂結構體數組,是指數組中的每個元素都是一個結構體。在實際應用中,c語言結構體數組常被用來表示一個擁有相同數據結構的群體,比如一個班的學生、一個車間的職工等。

結構體可以存儲不同的數據類型,將他們互相聯系起來。結構體數組可以連續存儲多個結構體,和數組作用相似。比如想定義同一個最小外接矩形的四個坐標值,並給予這個矩形一個特徵編號。當需要存儲多個最小外接矩形的信息時,就需要動態申請一個結構體數組。

struct 結構體類型名{類型名 成員名;類型名 成員名;……},先聲明結構體類型,再定義結構體變數名。聲明結構體類型,不分配空間,定義結構體類型變數,就要分配內存空間。

(3)c語言定義結構體數組擴展閱讀:

結構體數組指針類型:

一個結構體變數的指針就是該變數所佔據的內存段的起始地址。可以設一個指針變數,用來指向一個結構體變數,此時該指針變數的值是結構體變數的起始地址,指針變數也可以用來指向結構體數組中的元素。

1、類型一:

指向結構體變數的指針引用結構體變數中的成員。

2、類型二:

用結構體變數和指向結構體變數的指針構成鏈表,鏈表是一種常見的重要的數據結構。鏈表有一個「頭指針」變數,以head表示,它存放一個地址。該地址指向一個元素。

鏈表中的每一個元素稱為「結點」,每個結點都應包括兩個部分:

一是用戶需要用的實際數據,

二是下一個結點的地址。

鏈表中各元素在內存中的存儲單元可以是不連續的。要找某一元素,可以先找到上一個元素,根據它提供的下一元素地址找到下一個元素。這種鏈表的數據結構,必須利用結構體變數和指針才能實現。

可以聲明一個結構體類型,包含兩種成員,一種是用戶需要用的實際數據,另一種是用來存放下一結點地址的指針變數。

參考資料來源:網路—結構體類型—數組

『肆』 c語言編程:建立一個結構體數組

分析題意:

一、要定義兩個結構體,一個是日期年月日,一個是員工。

二、程序包含三個功能:1、結構數組的輸入。2、結構數組的輸出。3、統計平均工資。根據編程習慣,三功能要寫成獨立函數,方便擴展和調用。

ps:員工數量定義成常量,也為編程習慣,便於修改。另外,日期驗證我只寫了月份檢測給你參考。需擴展,自行編寫函數驗證。

#include

#define m 3//最大員工數量

typedef struct date

{

int year;

int month;

int day;

}ymd;

typedef struct employee

{

int id;//工號

char name[20];//姓名

ymd date;//日期

int wage;

}eme;

void inputinfo(eme emes[]);//輸入

void outputinfo(eme emes[]);//輸出

float getavg(eme emes[]);//求平均工資

int main()

{

eme emes[m];//員工結構體數組

inputinfo(emes);

outputinfo(emes);

printf("平均工資:%f",getavg(emes));

return 0;

}

void inputinfo(eme emes[])

{

int i;

for(i=0;i

{

printf("請輸入員工%d的信息: ",i 1);

printf("工號:"),scanf("%d",&emes[i].id);

printf("姓名:"),scanf("%s",emes[i].name);

printf("日期(分別輸入年月日,空格分割):"),scanf("%d%d%d",&emes[i].date.year,&emes[i].date.month,&emes[i].date.day);

if(emes[i].date.month>12 || emes[i].date.month<=0)//日期輸入的驗證不通過時,重新輸入,驗證可單獨寫函數,這里只做參考!

{

printf("輸入日期不符合,請重新輸入! "),i--;

continue;

}

printf("工資:"),scanf("%d",&emes[i].wage);

printf(" ");

}

}

void outputinfo(eme emes[])

{

int i;

printf("所有員工的信息為:---------------------------- ");

for(i=0,printf("員工%d的信息: ",i 1);i

{

printf("工號:%d ",emes[i].id);

printf("姓名:%s ",emes[i].name);

printf("日期:d-d-d ",emes[i].date.year,emes[i].date.month,emes[i].date.day);

printf("工資:%d ",emes[i].wage);

printf(" ");

}

}

float getavg(eme emes[])

{

int i;

float sum=0;

for(i=0;i

sum =emes[i].wage;

return sum/m;

}

『伍』 c語言求助:定義一個學生結構體數組stu[10],結構體類型



#include


#define n 10


typedef struct student {

int num;//成員num (學號)的類型為整型

char name[21];//成員name (姓名)的類型為字元數組

char sex;//成員sex(性別)的類型為字元型

int age; //成員score(分數)的類型為double類型

}stu;


void show(stu a[],int n) {

for(int i = 0; i < n; i)

printf("%d %d %s %c %d ",i 1,a[i].num,a[i].name,a[i].sex,a[i].age);

printf(" ");

}


int find(stu a[],int n,int num) {

for(int i = 0; i < n; i) {

if(a[i].num == num) {

printf("%d %s %c %d ",a[i].num,a[i].name,a[i].sex,a[i].age);

return i;

}

}

return 0;

}


int main() {

int i,num;

stu a[n];

for(i = 0;i < n; i) {

scanf("%d",&a[i].num,a[i]);

fflush(stdin);

scanf("%s",a[i].name);

fflush(stdin);

scanf("%c",&a[i].sex);

scanf("%d",&a[i].age);

}

show(a,n);

printf("請輸入待查學號:");

scanf("%d",&num);

if(!find(a,n,num)) printf(" 沒有找到學號為%d的學生! ",num);

return 0;

}

『陸』 c語言結構體數組的定義和賦值

intmain(void){

structstudentsbao={};

printf("%d,%s ",bao.id,bao.name);//輸出是4224528,空(應該是null)

//structstudentsbao={3,"123"};可以。第一種賦值方法

//strcpy(bao.name,"bao");//可以,

//printf("%d,%s ",bao.id,bao.name);

//bao.name="bao";錯誤「stray'351'inprogram」其他是亂碼,

//bao.name[0]='a';

//bao.name[0]='/0';

//printf("%d,%s ",bao.id,bao.name);

/*這樣可以,*/

//chararr[10]="baobao";

////bao.name=arr;//error""

//scanf("%s",bao.name);//可以,

//printf("%d,%s ",bao.id,bao.name);

//所以scanf那一類函數都可以。

//還有就是memcpy函數也是可以的

return0;

}

(6)c語言定義結構體數組擴展閱讀

c語言結構體數組的直接賦值及數組的長度計算:

#include

//自定義一個字元串的結構體,包含猜或字元串和字元串長度兩個變數

typedefstructstr{

charch[100];

intlength;//char數組(字元串)的長度

}mystr;

//剛開始聲明變數時每個變穗漏伍量的字元串長度length都為0

//這里以長度為10的數組為例,數組長度是1000

//對第0個到第9個結構體數組的長度同時賦值為0

mystrmystr1[10]={

[0...9]={

.length=0,

}

};

intmain(){

inti;

for(i=0;i<搜沖10;i ){

printf("%d ",mystr1[i].length);

}

return0;

}

熱點內容
愛奇藝正義聯盟為啥不能緩存 發布:2024-01-20 00:52:13 瀏覽:248
caccess查詢資料庫 發布:2024-01-20 00:43:10 瀏覽:769
xp文件夾圖標更改 發布:2024-01-20 00:43:03 瀏覽:19
python和node 發布:2024-01-20 00:37:12 瀏覽:194
android拖拉 發布:2024-01-20 00:00:49 瀏覽:583
少兒編程課程體系介紹 發布:2024-01-20 00:00:48 瀏覽:846
我說你做下載ftp 發布:2024-01-20 00:00:47 瀏覽:8
安卓驅動培訓哪裡好 發布:2024-01-19 23:55:41 瀏覽:987
python轉為字元串 發布:2024-01-19 23:51:39 瀏覽:272
合同文件夾 發布:2024-01-19 23:50:52 瀏覽:740
网站地图