55 lines
1.4 KiB
C
55 lines
1.4 KiB
C
/*----------------------------------------------------------------------
|
||
【程序设计】
|
||
------------------------------------------------------------------------
|
||
编写函数 fun, 函数 fun 的功能是:求出数组中最大数和次最大数,并把最大数
|
||
和 a[0]中的数对调、次最大数和 a[1]中的数对调,输出对调后的结果。
|
||
例如原数组为{3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5},对调后的结果为9 6 4 1 5 3 2 1 5 3 5
|
||
------------------------------------------------------------------------
|
||
注意:部分源程序给出如下。请勿改动主函数main 或其它函数中给出的内容,仅
|
||
在
|
||
Program-End 之间填入若干语句。
|
||
不要删除标志否则不得分。
|
||
不要修改或删除Program-End 之外的内容否则不得分。
|
||
----------------------------------------------------------------------*/
|
||
#include <stdio.h>
|
||
void fun(int *a, int n)
|
||
{
|
||
int max_index = 0;
|
||
int second_max_index = 0;
|
||
int i;
|
||
/**********Program**********/
|
||
for(i=1;i<n;i++){
|
||
if(a[i]>a[max_index]){
|
||
max_index = i;
|
||
}
|
||
}
|
||
i=a[0];
|
||
a[0]=a[max_index];
|
||
a[max_index]=i;
|
||
second_max_index = 1;
|
||
for(i=1;i<n;i++){
|
||
if(a[i]>a[second_max_index]){
|
||
second_max_index = i;
|
||
}
|
||
}
|
||
i=a[1];
|
||
a[1]=a[second_max_index];
|
||
a[second_max_index]=i;
|
||
|
||
/********** End **********/
|
||
}
|
||
int main()
|
||
{
|
||
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
|
||
int size = sizeof(arr) / sizeof(arr[0]);
|
||
int i;
|
||
fun(arr, size);
|
||
printf("【Modified array: 】");
|
||
for (i = 0; i < size; i++)
|
||
{
|
||
printf("%d ", arr[i]);
|
||
}
|
||
printf("\n");
|
||
return 0;
|
||
}
|