任意输入n个数,输出其中最大值与最小值,并输出它在序列中的位置!C语言编程

如题所述

第1个回答  2013-10-22
#include <stdio.h>
#include <stdlib.h>

int main()
{
  int i, j, n, max_pos = 0, min_pos = 0;
  int * a;
  printf("Please input maximum number: ");
  scanf("%d", &n);
  a = (int *)malloc(sizeof(int) * n);
  printf("Please input %d numbers now:\n", n);
  for(i = 0; i < n; i++)
  {
      scanf("%d", &a[i]);
      if (a[max_pos] < a[i])
          max_pos = i;
      if (a[min_pos] > a[i])
          min_pos = i;
  }
  printf("The maximum number is %d, its position is %d\n", a[max_pos], max_pos+1);//从第1开始算, 所以第0要+1
  printf("The minimum number is %d, its position is %d\n", a[min_pos], min_pos+1);//从第1开始算, 所以第0要+1 
  free(a);
  return 0;
}

可复制试验,望采纳

本回答被提问者采纳
第2个回答  2013-10-22
我只能说我的编程思想,其实我不喜欢直接上来就要代码的主——编程思想是定义五个变量,分别保存当前读入的值,以及保存最大值和最小值以及相应编号的变量。
使用do while循环读入变量,首先把最大值和最小值初始化成第一个读入的值,后续的循环就是判断当前读入的值是否比最大值大或者最大值小,从而实时修改相应的值即可。最后设立一个结束的标识符。
第3个回答  2013-10-22
采用冒泡法逐一比较
相似回答