1. 程式人生 > 其它 >投票統計(結構體)

投票統計(結構體)

技術標籤:c語言

問題

用結構體解決問題的一般結構是什麼?

程式碼如下:

#include<stdio.h>
#include <string.h>
#define VOTES 5
#define CANDIDATES 3
struct person
{
    char  name[20];
    int  count;
}leader[CANDIDATES]={"li",0,"zhang",0,"zhao",0};//結構體陣列初始化
int main()
{
    int i,j;
    char  leader_name[
20];//你輸入的這個姓名 for(i=1;i<=VOTES;i++)//票以字串的形式輸入 { scanf("%s",leader_name); for(j=0;j<CANDIDATES;j++)//對這個結構體陣列元素進行比較是否一致 { if(strcmp(leader_name,leader[j].name)==0) { leader[j].count++;//一致的話,對應結構體票數加一 } }
} printf(" 姓名 票數\n"); for(i=0;i<CANDIDATES;i++)//輸出結構體,一一對應輸出的 { printf("%5s %d\n",leader[i].name,leader[i].count); } return 0; }

測試結果

zhao li zhang li zhao
  姓名  票數
   li          2
zhang          1
 zhao          2

Process returned 0 (
0x0) execution time : 16.578 s Press any key to continue.

總結

 1、最外迴圈主要是對輸入的處理
 2、中間主要是對比較的處理,並統計
 3、最後為輸出
 另外,結構體是一種特殊的型別,它包括了許多其它的型別,是一個型別的集合,具體包括什麼型別,主要看它所描述的物件有什麼特徵。
 4、可以簡單概括為統一名(方便對這個物件的特徵進行使用),囊括了許多東西