发布时间:2011-09-16 共7页
6. 请补充该fun函数,该函数的功能是:交换数组aa中最大和最小两个元素的位置,结果重新保存在原数组中,其它元素位置不变。注意数组aa中没有相同元素。
1) void fun(int aa[])
2) {int i,j,t;
3) int max=0,min=0;
4) for(i=0;i
5) {
6) if(___1___)
7) max=i;
8) if(___2___)
9) min=i;
10) }
11) t=aa[max];
12) ___3___;
13) aa[min]=t;
14) }
第一处:aa[max]
第二处:aa[min]>aa[i]
第三处:aa[max]=aa[min]
解析:
算法思想与第19题相似。
算法思想:假定最大、最小值是同一个元素(第一个);接下来将后面的元素依次开始比较,如果比最大值还大,则修改最大值;如果比最小值还小,则修改最小值。
此题保存的是最大最小值的下标。
最后,通过变量t,交换最大最小值。
第4行:循环变量i的值可以从1开始。
7. 给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。
#include
typedef struct{
char Name[4];
int age ;
}STD;
STD fun(STD std[], int n)
{STD max;
int i;
max= ___1___;
for(i=1; i
if(max.age<___2___) max=std[i];
return max;
}
main( )
{STD std[5]={"aaa",17,"bbb",16,"ccc",18,"ddd",17,"eee",15 };
STD max;
max=fun(std,5);
printf("\nThe result: \n");
printf("\nName : %s, Age : %d\n", ___3___,max.age);
}
第一处:*std
第二处:std[i].age
第三处:max.name
解析:
求最大值。
搞清结构体变量类型声明、变量声明、初始化、赋值、输入、输出的方法。
Max=*std 也可以max=std[0] 即结构体变量之间可相互赋值。
但不能整体输入输出。仅能一个数据项、一个数据项地单独进行。