问题
用结构体解决问题的一般结构是什么?
代码如下:
#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、可以简单概括为统一名(方便对这个对象的特征进行使用),囊括了许多东西