知识点:枚举
枚举(Enumeration)是C的基础数据结构之一不是构造数据结构,即一一列举之意。在枚举思想就是把有限个可能全部列举出来。
枚举法的本质就是从所有候选答案中去搜索正确的解,使用该算法需要满足两个条件:(1)可预先确定候选答案的数量;(2)候选答案的范围在求解之前必须有一个确定的集合。
枚举法虽然是“暴力求解”,时空效率低,在数据量庞大时更是如此,但是枚举法简单,容易理解,在小范围内应用很收到不错的效果。
习题:Let the Balloon Rise http://acm.hdu.edu.cn/showproblem.php?pid=1004
分析:本题会给出N组测试用例,每组的第一行是m,以下是m行字符串(热气球的颜色),统计哪种颜色出现次数最多并打印该颜色。用枚举来解题。首先我们用二维字符数组存储颜色,定义一个计数用的数组,下标一一对应。然后用双层循环遍历每一行的颜色总共出现了几次,并存入计数数组中。对计数数组进行处理,找到其中最大值的下标,最后用下标输出颜色。
献上代码:
#include#include #include #define MAX_SIZE 1000int FindMaxIndex(int [],int );int main(){ int n; while(scanf("%d",&n)!=EOF) { if(n==0) exit(0); int i,j,index; int num[MAX_SIZE]={ 0}; char color[MAX_SIZE][16]; for(i=0;i