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

c語言二維結構體數組

發布時間: 2022-01-13 06:02:24

『壹』 c語言結構體數組

#include<stdio.h>
struct student
{
int num;
char name[20];
float score1,score2,sum,average;
};
void main()
{
struct student stu[5];
int i;

for(i=0;i<5;i++)
{
printf("請依次輸入第%d個學生的學號,姓名,和兩門成績:",i+1);
scanf("%d%s%f%f",&stu[i].num,stu[i].name,&stu[i].score1,&stu[i].score2);
stu[i].sum=stu[i].score1+stu[i].score2;
stu[i].average=stu[i].sum/2;
}
printf("學號 姓名 成績 總成績 平均成績\n");
for(i=0;i<5;i++)
printf("%d %s %.2f %.2f %.2f
%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].sum,stu[i].average);
}

『貳』 c語言中的結構體二維數組做參數問題

1、如果在函數外定義的結構數組,又要在一個函數中進行輸入、輸出,通常情況下,其參數傳遞類型需要傳址,即
void shuchu(struct std **cansu);
void shuchu(struct std *cansu[]);

這樣調用改為 shuchu(&aa);

對函數內的相應操作改為指針操作即可。

2、通常情況下,對於一個系統設計而言,其輸入輸出是分開的,也即在2個函數中,從系統分析而言,建議分開。當然,就測試而言,是可以的。

3、如果一定要採用2維數組做參數,按照對於多維數組做參數的要求,前幾維一定要給出確切的數值

如2維: void shuchu(struct std cansu[5][]) 就可以了。

『叄』 C語言結構體定義二維數組

自定義的一個類型,意思是這個結構體的二維數組
AdjMatrix arcs;
等效於
struct ArcCell arcs[MAX_NUM][MAX_NUM];

『肆』 c語言,結構體數組

#include<stdio.h>
#include<stdlib.h>
struct student{
long int a;
char b[4];
int c;
char d[10];
char e[10];

};
int main()
{
int i=0;
struct student stu[400];
FILE*fp;
if((fp = fopen("students.txt","r"))==NULL)
{printf("打開文件失敗!\n"); exit(0);}
while(fscanf(fp,"%ld%s%d%s%s",&stu[i].a,&stu[i].b,&stu[i].c,&stu[i].d,&stu[i].e)!=EOF)
{printf("%ld,%s,%d,%s,%s\n",stu[i].a,stu[i].b,stu[i].c,stu[i].d,stu[i].e); i++;}
fclose(fp);
return 0;

}

『伍』 C語言 怎樣動態分配一個二維結構體指針數組

//#include"stdafx.h"//vc++6.0加上這一行.
#include"stdio.h"
#include"stdlib.h"
structData{
intx;
};
intmain(void){
structData***p,x,y;
inti;
p=(structData***)malloc(2*sizeof(structData**));
for(i=0;i<2;i++)
p[i]=(structData**)malloc(3*sizeof(structData*));
p[0][0]=&x;//這兩行是做存入structData*型指針試驗
p[1][2]=&y;//
//...
for(i=0;i<2;free(p[i++]));
free(p);
return0;
}

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

1、C語言結構體數組的定義:數組是有序的並且具有相同類型的數據的集合。
2、結構數組就是具有相同結構類型的變數集合。假如要用C語言,定義一個班級40個同學的姓名、性別、年齡和住址, 可以做成一個結構數組。
結構數組成員的訪問是以數組元素為結構變數的,它的形式為:
1、結構數組元素—成員名。
2、例如:student[0].name,student[30].age
3、實際上結構數組相當於一個二維構造, 第一維是結構數組元素, 每個元素是一個結構變數, 第二維是結構成員。

『柒』 C語言結構體數組的定義

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

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

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

(7)c語言二維結構體數組擴展閱讀:

結構體數組指針類型:

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

1、類型一:

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

2、類型二:

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

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

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

二是下一個結點的地址。

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

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

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

『捌』 c語言中 結構體中有二維數組怎樣賦初值

最基本的方法就是:

mx[0].name[0]=x;

mx[0].information[0][0]=x;

以此類推……

數組不能整體直接賦值,以下情況除外:

1.初始化時賦值:

typedefstructstar

{

charname[8];

charinformation[2][2];

}MX;


MXmx[2]={{"zhang",

{{'a','a'},

{'b','b'}}},//為了你能看清楚mx[0]分了三行,此處之前是mx[0],下面是mx[1]

{"lisi",{{'c','c'},{'d','d'}}}};


2.把數組放在結構里,兩個結構可以直接賦值。

3.memcpy等方法。

需要注意幾點,

  1. 你的name是個位元組,所以如果name的大括弧里用「zhangsan」,會踩內存,初學者常犯的錯誤,因為這種賦值隱含了"",字元串的截止符,換句話說你賦值zhangsan是8個BYTE+「」,這樣就超過name[8]了。

  2. 你可以嘗試指針×pName;

希望對你有所幫助。

『玖』 C中結構體內有一個成員是二維數組,可以直接賦值另一個一維數組嗎

1.如果這個結構體沒有指針成員的話,可以直接用「=」號賦值(目前主流的編譯器都支持這樣的賦值,如果是特別老舊的編譯器可能不支持這樣,那就要把每個成員分別賦值了 如果有指針成員,那麼這個指針成員不能簡單的賦值

『拾』 C語言中,結構體數組和二維數組的差別 初學者,請說的簡單一些

二維數組 含有的數 是同一種變數類型的。

結構體 含有的數 一般是不同變數類型的。
結構體數組 是含有多個 同一種結構的 組合。

二維數組,數學上可以排列成 矩陣,幾行幾列。
結構體和 結構體數組,不能 排列成 矩陣。