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

怎样找出所在位置呢?
2025-02-23 05:16:09
推荐回答(3个)
回答1:

#include
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;
}

回答2:

#include
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;
}

回答3:

伪代码

int a[10];

循环输入10个数

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

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

循环结束你要的就出来了