位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 結構體類型程序舉例

提問人:劉團圓發(fā)布時間:2020-12-02

    由于結構體可以將存在內(nèi)在聯(lián)系的不同數(shù)據(jù)類型結合為一個整體,所以結構體用處非常廣泛,靈活使用結構體對于提高程序的結構體清晰性非常有好處。下面舉幾個例子來介紹結構體的用法。

【例題】統(tǒng)計選票

    設計一個統(tǒng)計選票的程序:某次選舉有3個候選人,參加投票人員有15人,設計一個程序?qū)崿F(xiàn)將這15個人的選票中選中的候選人編號輸入,統(tǒng)計出這3個人的票數(shù)。

算法分析:

將候選人的信息定義為一個結構體,該結構體中包括候選人編號、候選人票數(shù)等信息:

struct vote

{

    char no[5]; 

    int number;

};

定義一個vote型數(shù)組,數(shù)組個數(shù)為3,代表3個候選人的信息。

定義一個函數(shù)stat()進行票數(shù)統(tǒng)計,函數(shù)形參為vote型數(shù)組,結束main()函數(shù)傳遞的實參數(shù)組名。函數(shù)中使用一個循環(huán)輸入15個投票人所選擇的候選人編號:

如果輸入的候選人編號為“1001”,第一個候選人加1票。

如果輸入的候選人編號為“1002”,第二個候選人加1票。

如果輸入的候選人編號為“1003”,第三個候選人加1票。

程序如下:

#include < stdio.h >

#include <string.h>

void stat(struct vote v[]);

struct vote       /*定義選票結構體類型*/

{

    char no[5]; 

    int number;

};


main()

{

    int i;

    struct vote v[3]={{"1001",0},{"1002",0},{"1003",0}}; 

    stat(v);

    for(i=0;i<3; i++)            /*輸出三個人的選票數(shù)*/

        printf("%s %d\n",v[i].no,v[i].number);

}

void stat (struct vote v[])    /* 統(tǒng)計選票 */

{

    int i,other=0;

    char cno [5];            /*候選人編號*/

    for (i=l; i<=15;i++)

    {

        printf("please input the no of candidate :\n");

        scanf("%s",cno); 

        if(strcmp(cno,"1001")==0) 

            v[0].number++;

        else if(strcmp(cno,"1002")==0) 

            v[1].number++; 

        else if(strcmp(cno,"1003")==0)

            v[2].number++;

        else

            other++;

    }

}

繼續(xù)查找其他問題的答案?

相關視頻回答
回復(0)
返回頂部