首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

回一个C程序

2013-01-17 
来一个C程序1.利用指向一维数组的指针作为函数参数具体实现: (1)求数组最大元素及其所在位置。函数首部为:v

来一个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;
}

热点排行