请问:文字说明求一维数组中最大值的算法?

如题所述

首先,在数组中输入n个数字,假设第一个数为最大值,将其与后面的数值一一进行比较,当遇到最大值时记录其坐标,将其与第一个数进行交换,这样就能找到一维数组中最大值了 ,下面是程序
#include<stdio.h>
#define NUM 10
void main()
{
int a[NUM];
int i,j,k,t;

printf("input %d numbers\n",NUM);
for(i=0;i<10;i++)
scanf("%d",&a[i]);
//令第一个数为最小数 a[k]
for(j=0;j<NUM-1;j++)
{
k=j;
for(i=j+1;i<NUM;i++)
if(a[k]>a[i])
k=i;
if(k!=j)
{
t=a[j];
a[j]=a[k];
a[k]=t;
}
}

printf("%5d",a[9]);
printf("\n");

}
这是选择排序法,它的效率高点
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-15
先定义一个变量,让它等于一维数组的第一个值,然后与第二个数比较让变量的值等于两个里的最大值,接着再于第三、第四。。。。。依次比较(用一个循环来进行)最后变量的值就是最大值
第2个回答  2011-12-15
1.设一个临时变量值为空
2.将数组第一个元素放到临时变量中
3.数组第二个元素和临时变量比较,如果数组元素>临时变量,则把数组元素放入临时变量,
如果数组元素<=临时变量,数组下标+1 继续第3步直到数组结束
4,数组下标+1 继续第3步直到数组结束本回答被提问者采纳
第3个回答  2011-12-15
int a[5] = {5,4,3,2,1}

类似这样一个数组,可以先用第一个跟第二个比较,第一个大的话就跟第二个换个位置
a[5] = {4,5,3,2,1},接着比较下一个,第二个跟第三个比较,相同的方法
a[5] = {4,3,5,2,1},。。。。
最后
a[5] = {4,3,2,1,5},那么我只要取到最后一个数就好了,传说中的冒泡?
方法很多的
第4个回答  2019-03-03
1.设一个临时变量值为空
2.将数组第一个元素放到临时变量中
3.数组第二个元素和临时变量比较,如果数组元素>临时变量,则把数组元素放入临时变量,
如果数组元素<=临时变量,数组下标+1
继续第3步直到数组结束
4,数组下标+1
继续第3步直到数组结束
相似回答