问题 多项选择题

fclose (fp);

答案

参考答案:void SortDat()
{
int i,j;
PRO xy;
for(i=O;i<II;i++)
for(j=i+A;j<A00;i++)
if(strcmp(sell[i).mc,sell[j].mc)>0)/*按产品名称从小到大进行排列*/
{xy=sell[i];sell [i]=sell[i];sell[j]=xy;}
else if(strcmp(sell[i].mc,sell[j]/mc)==0) /*若产品名称相同*/
if(sell[i].ie>sell[j].je) /*则按金额从小到大进行排列*/
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;)
}

解析: 本题是有关结构体数组的排序问题,可以用选择法来实现。用第一个元素的产品名称依次和它后面的元素的产品名称进行比较,如果发现当前元素的产品名称比后面的某个元素的产品名称对应字符的ASCII码大(这里用到了字符串比较函数strcmp()),则交换这两个元素的位置,继续和后面的其他元素进行比较,最终在第一个元素中存放的是产品名称最小的元素。以此类推,就实现了从小到大排序的功能。注意:这里要进行交换的是两个结构体变量,而不是它们的某一个域,因此,要借助第三个结构体变量来充当中间容器。若产品名称相同,则要按照金额从小到大进行排序。

单项选择题 A1型题
填空题