發布時間: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] 即結構體變量之間可相互賦值。 但不能整體輸入輸出。僅能一個數據項、一個數據項地單獨進行。