投票統計(結構體)
阿新 • • 發佈:2020-12-31
技術標籤: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、可以簡單概括為統一名(方便對這個物件的特徵進行使用),囊括了許多東西