你到底是要排序,还是找出最大最小数即可?
int main() {
int n[10];
for (int i = 0; i < 10; i++)
{
scanf_s("%d", &n[i]);
}
int nMin = n[0];
int nMax = n[0];
int nMinPos = 0;
int nMaxPos = 0;
int nDef = 0;
for (int i = 1; i < 10; i++)
{
if (nMin > n[i])
{
nMin = n[i];
nMinPos = i;
}
if (nMax < n[i])
{
nMax = n[i];
nMaxPos = i;
}
}
nDef = nMaxPos - nMinPos;
printf("max=%d,min=%d,maxPos-minPos=%d", nMax, nMin, nDef);
return 0;
}
代码如下,如有帮助,请采纳,谢谢。
#include <stdio.h>
int main()
{
int buf[10] = {0};
printf("请输入10个数据,\n");
for (int i = 0; i < 10 ;i++)
{
printf("请输入第%d个参数:",i+1);
scanf("%d",&buf[i]);
}
//获取最大值和最小值的索引
int indexMax = 0;
int indexMin = 0;
int maxV = buf[0];
int minV = buf[0];
for (int i = 1; i < 10 ; i++)
{
if (buf[i] > maxV)
{
maxV = buf[i];
indexMax = i;
}
if (buf[i] < minV)
{
minV = buf[i];
indexMin = i;
}
}
//选择排序
int index = 0;
for (int i = 0; i < 9; i++)
{
index = i;
for (int j = i +1; j < 10;j++)
{
if (buf[j] < buf[index])
{
index = j;
}
}
int tmp = buf[i];
buf[i] = buf[index];
buf[index] = tmp;
}
for (int i = 0; i < 10; i++)
{
printf("%d ",buf[i]);
}
printf("\n");
printf("最大值和最小值的索引差:%d-%d=%d\n",indexMax,indexMin,indexMax - indexMin);
getchar();
getchar();
return 0;
}