【解题思路】 首先通读题目,得知此题属于字符排序问题;其次分析题干要求,本题要求实现SortCharD()函数,该函数需要实现将字符数组中的元素排序的算法。分析后可以归纳出实现该功能的关键点是:如何按照字符从大到小的顺序对数组中的字符进行排序。这可以通过循环嵌套的起泡法来实现。
【参考答案】
void SortCharD()
{
int i,j,k; /*定义循环控制变量*/
int str; /*存储字符串的长度*/
char temp; /*定义数据交换时的暂存变量*/
for (i=0;i<maxline;i++) /*以行为单位获取字符*/
{
str=strlen(xx[i]); /*求得当前行的字符串长度*/
for(j=0;j<str-1;j++) /*对字符按从大到小的顺序进行排序*/ for(k=j+1;k<str;k++)
if(xx[i][j]<xx[i][k])
{
temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
}
}
【易错提示】 排序时if结构中的逻辑表达式。
15. 【考点分析】 本题考查选票的统计。考查的知识点主要包括:C语言循环结构,if条件判断结构和逻辑表达式,二维数组操作。
【解题思路】 首先通读题目,得知此题属于选票的统计题型;其次分析题干要求,本题要求实现CountRs(void)函数的功能,该函数需要统计出100条选票数据,并将统计结果保存入数组yy中;接着归纳出本题有2个关键点:关键点1如何统计每张选票的选择情况;关键点2根据题目给出的条件"一张选票选中人数小于等于5个人时则被认为无效"判断选票是否有效。
首先,对数组yy元素初始化为0;接着通过一个循环嵌套结构依次判断每张选票数据的十个选举标志,同时每张选票的投票数量,对于不满足条件的选票数据直接跳过,并统计有效选票的投票情况到数组 yy中。
【参考答案】
void CountRs(void)
{
int i,j; /*定义循环控制变量*/
int cnt; /*用来存储每张选票中选中人数,以判断选票是否有效*/
for(i=0;i<10;i++) /*初始化数组yy*/