為什么要使用結構數組?
例如有一種情況,我們需要存儲5名學生的數據。我們可以使用下面給出的結構來存儲它。
示例
#include<stdio.h>
struct student
{ char name[20]; int id; float marks;
};
void main()
{struct student s1,s2,s3;int dummy;printf("輸入學生1的姓名,身份證和分數 ");scanf("%s %d %f",s1.name,&s1.id,&s1.marks);scanf("%c",&dummy);printf("輸入學生2的姓名,身份證和分數 ");scanf("%s %d %f",s2.name,&s2.id,&s2.marks);scanf("%c",&dummy);printf("輸入學生3的姓名,身份證和分數 ");scanf("%s %d %f",s3.name,&s3.id,&s3.marks);scanf("%c",&dummy);printf("輸出詳細信息....\n");printf("%s %d %f\n",s1.name,s1.id,s1.marks);printf("%s %d %f\n",s2.name,s2.id,s2.marks);printf("%s %d %f\n",s3.name,s3.id,s3.marks);
}
輸出結果
輸入學生1的姓名,身份證和分數 James 90 90
輸入學生2的姓名,身份證和分數 Adoms 90 90
輸入學生3的姓名,身份證和分數 Nick 90 90
輸出詳細信息....
James 90 90.000000
Adoms 90 90.000000
Nick 90 90.000000
在上面的程序中,我們在結構中存儲了3個學生的數據。但是,如果有20名學生,則該程序的復雜性將增加。在這種情況c下,我們將必須聲明20個不同的結構變量,并將其一一存儲。這將一直很困難,因為每次添加學生時都必須聲明一個變量。記住所有變量的名稱也是一項非常棘手的任務。但是,C語言中我們能夠使用聲明結構的數組,從而避免聲明不同的結構變量;相反,我們可以創建一個包含所有存儲不同實體信息的結構的集合。
C語言中的結構數組
C語言中的結構數組可以定義為多個結構變量的集合,其中每個變量都包含有關不同實體的信息。C語言中的結構數組用于存儲有關不同數據類型的多個實體的信息。結構的陣列也稱為結構的集合。
讓我們看一下存儲5個學生的信息并打印出來的結構數組的示例。
示例
#include<stdio.h>
#include <string.h>
struct student{ int rollno; char name[10];
};
int main(){ int i; struct student st[5]; printf("輸入5個學生數據"); for(i=0;i<5;i++){ printf("\n輸入序號:"); scanf("%d",&st[i].rollno); printf("\n輸入姓名:"); scanf("%s",&st[i].name); } printf("\n學生信息列表:"); for(i=0;i<5;i++){ printf("\n序號:%d, 姓名:%s",st[i].rollno,st[i].name); } return 0;
}
輸出:
輸入5個學生數據
輸入序號:1
輸入姓名:Sonoo
輸入序號:2
輸入姓名:Ratan
輸入序號:3
輸入姓名:Vimal
輸入序號:4
輸入姓名:James
輸入序號:5
輸入姓名:Sarfraz學生信息列表:
序號:1, 姓名:Sonoo
序號:2, 姓名:Ratan
序號:3, 姓名:Vimal
序號:4, 姓名:James
序號:5, 姓名:Sarfraz