『壹』 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等方法。
需要注意幾點,
你的name是個位元組,所以如果name的大括弧里用「zhangsan」,會踩內存,初學者常犯的錯誤,因為這種賦值隱含了"