c语言求数组中最大值和最小值及其下标

题目描述
已知有10个同学的成绩,求最高分和最低分以及相应分数所在的位置。从键盘输入10个整数存放在数组中,假设这10个数互不相同,且无序排列。请找出其中最大数及它在数组中的下标,以及最小数和下标。

输入
从键盘输入10个整数。

输出
找出其中最大数及它在数组中的下标,以及最小数和下标。各占一行。
#include <stdio.h>
main()
{
int a[10],c[10],b,i,j,k;
for (i=0;i<10;++i)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
a[i]=c[i];
for (i=0;i<9;++i) //将数组a[10]中的数从大到小排列
{
if (a[i]<a[i+1])
{b=a[i],a[i]=a[i+1],a[i+1]=b,i=-1;}
}
for(i=0;i<10;i++) //找出最大数在数组中对应的下标
{
if(a[0]==c[i])
{j=i;
break;}
}
for(i=0;i<10;i++) //找出最小数在数组中对应的下标
{
if(a[9]==c[i])
{k=i;
break;}
}

printf("%d %d\n",a[0],j);
printf("%d %d\n",a[9],k);
}
不知道哪里错了

思路:假定一个数为最大值,如果有个数比假定的最大值还大,那么该数就为最大值。

最小值同理。

使用for循环。

*/

public class MaxMin{

public static void main(String[]args){

int[]array={13,56,45,48,26,55,7,3,9,468,4589,76,4,3,18};//声明数组并赋值

int i=0;

int max=array[0];//最大值

int min=array[0];//最大值

int indexMax=-1;//最大值索引

int indexMin=-1;//最小值索引

//使用for循环判断

for(i=0;i&lt;array.length;i++){

if(array&lt;i&gt;&gt;max){

max=array&lt;i&gt;;

indexMax=i;

}

if(array&lt;i&gt;&lt;min){

min=array&lt;i&gt;;

indexMin=i;

}

}

System.out.println("最大值为:"+max+",索引为:"+indexMax);

System.out.println("最小值为:"+min+",索引为:"+indexMin);

}

}

扩展资料:

system()函数用于向操作系统传递控制台命令行,以WINDOWS系统为例,通过system()函数执行命令和在DOS窗口中执行命令的效果是一样的,所以只要在运行窗口中可以使用的命令都可以用SYSTEM()传递,但要注意的是输入斜线时要输入两个,以名C语言当作转义字符处理。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-27

#include <stdio.h>
main()
{
int a[10],i,j,k;
for (i=0;i<10;++i)
scanf("%d",&a[i]);
for(i=j=k=0;i<10;i++) //找出最大数、最小数在数组中对应的下标
  if(a[i]>a[j])j=i;
    else if(a[i]<a[k])k=i;
printf("%d %d\n",a[j],j);
printf("%d %d\n",a[k],k);
}

第2个回答  2017-11-27
a[i]=c[i]; 要改成 c[i]=a[i];本回答被提问者采纳
相似回答