C語言 結構體類型程序舉例
由于結構體可以將存在內(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++;
}
}
點擊加載更多評論>>