来一个C程序
1.利用指向一维数组的指针作为函数参数具体实现:
(1)求数组最大元素及其所在位置。函数首部为:void fun_max(int * x, int * max, int *p,int n),其中x为指向数组的指针,max为指向最大元素的指针,p为指向最大元素位置的指针,n为数组元素的长度。
(2)利用选择排序对数组元素按照从小到大排序。
函数首部为:void sort(int * x, int n) ,其中x为指向数组的指针,n为数组元素的长度。
[解决办法]
#include <stdio.h>
void fun_max(int* x, int* max, int* p, int n)
{
int i;
*max = x[0];
*p = 0;
for(i = 1; i < n; i++)
if(x[i] > *max){
*max = x[i];
*p = i;
}
}
void sort(int* x, int n)
{
int i, j, k;
int temp;
for(i = 0; i < n - 1; i++){
k = i;
for(j = i + 1; j < n; j++)
if(x[j] < x[k])
k = j;
temp = x[i];
x[i] = x[k];
x[k] = temp;
}
}
int main(int argc, char* argv[])
{
int x[] = {19, 26, 47, 6, 26, 18};
int max;
int p;
int i;
fun_max(x, &max, &p, 6);
sort(x, 6);
printf("max=%d, p=%d\n", max, p);
printf("x=");
for(i = 0; i < 6; i++)
printf("%d ", x[i]);
printf("\n");
return 0;
}