发布时间: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] 即结构体变量之间可相互赋值。 但不能整体输入输出。仅能一个数据项、一个数据项地单独进行。