【考点分析】 本题考查的知识点主要包括:结构体成员的访问,元素的排序, if判断结构和逻辑表达式。
【解题思路】此题属于结构体的筛选排序问题。分析题干要求,可以归纳出3个关键点:关键点1通过条件"每组数据中第2个数大于第1个数和第3个数之和"对每组数据进行判断;关键点2保存满足条件的数到新数组中并统计其数量;关键点3对新数组中的数再按照第2个数和第3个数之和的大小进行降序排列;关键点4函数的返回值为之前统计的满足的数据的组数。
接着分析具体的解决方法,首先通过if判断结构和逻辑表达式实现对所有结构的筛选,保存并统计个数,然后通过起泡法完成排序,最后函数返回组数。
【参考答案】
int jsSort()
{ int i,j; /*定义循环控制变量*/
int cnt=0; /*定义计数器变量*/
Data temp; /*定义数据交换时的暂存变量,这里是一个Data类型的结构体变量*/
for(i=0;i<200;i++)
if(aa[i].x2>aa[i].x1+aa[i].x3) /*如果第二个数大于第一个数加第三个数之和*/
{
bb[cnt]=aa[i]; /*则把该组数据存入结构数组bb中*/
cnt++; /*同时统计满足条件的数据的个数*/
}
for(i=0;i for(j=i+1;j if(bb[i].x2+bb[i].x3 { temp=bb[i]; bb[i]=bb[j]; bb[j]=temp; } return cnt; /*返回满足条件数据的组数*/ } 【易错提示】 第i个人是否报数到m;用表达式(S1+m-1)% i判断。 相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |