C 語言基礎教程

C 語言流程控制

C 語言函數(shù)

C 語言數(shù)組

C 語言指針

C 語言字符串

C 語言結(jié)構(gòu)體

C 語言文件

C 其他

C 語言參考手冊

C 語言結(jié)構(gòu)體和數(shù)組

為什么要使用結(jié)構(gòu)數(shù)組?

例如有一種情況,我們需要存儲5名學生的數(shù)據(jù)。我們可以使用下面給出的結(jié)構(gòu)來存儲它。

#include<stdio.h>  
struct student  
{  
    char name[20];  
    int id;  
    float marks;  
};  
void main()
{
	struct student s1,s2,s3;
	int dummy;
	printf("輸入學生1的姓名,身份證和分數(shù) ");
	scanf("%s %d %f",s1.name,&s1.id,&s1.marks);
	scanf("%c",&dummy);
	printf("輸入學生2的姓名,身份證和分數(shù) ");
	scanf("%s %d %f",s2.name,&s2.id,&s2.marks);
	scanf("%c",&dummy);
	printf("輸入學生3的姓名,身份證和分數(shù) ");
	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);
}

輸出結(jié)果

輸入學生1的姓名,身份證和分數(shù) James 90 90  
輸入學生2的姓名,身份證和分數(shù) Adoms 90 90  
輸入學生3的姓名,身份證和分數(shù) Nick 90 90       
輸出詳細信息....        
James 90 90.000000                          
Adoms 90 90.000000                      
Nick 90 90.000000

在上面的程序中,我們在結(jié)構(gòu)中存儲了3個學生的數(shù)據(jù)。但是,如果有20名學生,則該程序的復雜性將增加。在這種情況下,我們將必須聲明20個不同的結(jié)構(gòu)變量,并將其一一存儲。這將一直很困難,因為每次添加學生時都必須聲明一個變量。記住所有變量的名稱也是一項非常棘手的任務。但是,C語言中我們能夠使用聲明結(jié)構(gòu)的數(shù)組,從而避免聲明不同的結(jié)構(gòu)變量;相反,我們可以創(chuàng)建一個包含所有存儲不同實體信息的結(jié)構(gòu)的集合。

C語言中的結(jié)構(gòu)數(shù)組

C語言中的結(jié)構(gòu)數(shù)組可以定義為多個結(jié)構(gòu)變量的集合,其中每個變量都包含有關(guān)不同實體的信息。C語言中的結(jié)構(gòu)數(shù)組用于存儲有關(guān)不同數(shù)據(jù)類型的多個實體的信息。結(jié)構(gòu)的陣列也稱為結(jié)構(gòu)的集合。

讓我們看一下存儲5個學生的信息并打印出來的結(jié)構(gòu)數(shù)組的示例。

#include<stdio.h>  
#include <string.h>    
struct student{    
    int rollno;    
    char name[10];    
};   
int main(){  
    int i;  
    struct student st[5];  
    printf("輸入5個學生數(shù)據(jù)");  
    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個學生數(shù)據(jù)
輸入序號:1
輸入姓名:Sonoo
輸入序號:2
輸入姓名:Ratan
輸入序號:3
輸入姓名:Vimal
輸入序號:4
輸入姓名:James
輸入序號:5
輸入姓名:Sarfraz

學生信息列表:
序號:1, 姓名:Sonoo
序號:2, 姓名:Ratan
序號:3, 姓名:Vimal
序號:4, 姓名:James
序號:5, 姓名:Sarfraz
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清