有一个存放10个整数的数组,要求找出最小的数和它的下标。然后把它和数组中的第一个元素对换

我编的至少跟它前一个元素对换,没有跟第一个进行对换,求解
#include "stdio.h"
main()
{
int i,min,M,tem;
int a[10];
printf("请输入十个整数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
min=a[0];
for(i=0;i<10;i++)
if(min>=a[i])
{ min=a[i];
M=i;
}
tem=a[M];
a[M]=a[M-1];
a[M-1]=tem;
printf("最小的数: %d\n下标: %d \n",min,M);
for(i=0;i<10;i++)
printf("%3d",a[i]);
}
我编的只是跟它前一个元素对换,没有跟第一个进行对换,求解

答:这个很简单,将程序作如下改动即可:
a[M]=a[M-1];
a[M-1]=tem;
改为
a[M]=a[0];
a[0]=tem;
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-07
tem=a[M];
a[M]=a[M-1];
a[M-1]=tem; //你自己看这个代码嘛
要跟第一个对换不应该是
tem=a[M];
a[M]=a[0];
a[0]=tem;本回答被提问者和网友采纳
第2个回答  2018-04-06
tem=a[M];
a[M]=a[0];
a[0]=tem;
第3个回答  2018-04-06
tem=a[M]; 
a[M]=a[0]; 
a[0]=tem;

这样不行吗

相似回答