c语言 输入10个数 找出最大数与最小数 并指出所在位置

怎样找出所在位置呢?

#include<stdio.h>
int main() 

int a[] = {1,2,3,4,5,6,7,8,9,10};
int max, min;
max = min = a[0]; //假设第1个元素即是最大值也是最小值。
int max_pos = 0, min_pos = 0;
 
//遍历数组,找出数组a中的最大数和最小数
for (int inx=0; inx!=sizeof(a) / sizeof(int); ++inx) {
if (a[inx]> max) max = a[inx], max_pos=inx;
else if (a[inx] < min) min = a[inx], min_pos=inx;
}
printf("最大数:%d\t它是第:%d个元素\n最小数:%d\t它是第:%d元素\n", max, max_pos +1 ,min, min_pos +1);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-30
#include <stdio.h>
int main()
{
int i,max,min,maxnum,minnum;
int a[10] = {0};

for(i=0;i<10;i++)
{
printf("请输入第%d个数:",i+1);
scanf("%d",&a[i]);
}
max = min = a[0];
maxnum = minnum = 1;
for(i=1;i<10;i++)
{
if(a[i] > max)
{
max = a[i];
maxnum = i+1;
}
if(a[i] < min)
{
min = a[i];
minnum = i+1;
}
}
printf("最大的数为%d,是第%d个数\n",max,maxnum);
printf("最小的数为%d,是第%d个数\n",min,minnum);
return 0;
}追问

有些不懂啊?怎么是int main?int a[10]只定义不赋值行吗?最后一个return 0
么意思?不胜感激

追答

main函数并不一定是要void型的
main函数也可以带返回值的
而且事实上int main的用法更多
比如单片机最后main程序运行完成
可以根据返回值来判断程序是否正常进行或者异常结束
习惯写int main是个好习惯
那个return 0 就是main函数的返回值

至于int a[10];定义的时候可以不初始化;
但是定义数据后先初始化一下这是好的习惯。
因为如果不初始化,定义了a[10];数组,那么它里面元素的初始值是不确定的。

本回答被提问者采纳
第2个回答  2011-10-30
伪代码

int a[10];

循环输入10个数

假设最大值max= min= a[0]; 都是第1个值
max_pos = min_pos = 0; 最大值位置为第一个

然后循环
从第1或者第2个一直比较大最后一个
期间如果比max大,就记录最大值到max, pos改为当前pos
同理比min小,记录最小值为min, pos改为当前pos

循环结束你要的就出来了
相似回答