#include <stdio.h>
int main()
{
int a[10]={87,78,69,79,98,86,91,75,71,95};
int min,i;
min=a[0];
for(i=0;i<10;i++)
if(a[i]<min)
min=a[i];
printf("min=a[%d]=%d",i,min);
return 0;
}
为什么输出是 min=a[10]=69?应该是a[2]啊,怎么改啊救命救命,交换位置我也不会
因为循环后i的值就是10了
供参考:
#include <stdio.h>
int main()
{
int a[10]={87,78,69,79,98,86,91,75,71,95};
int min,i,k;
k=0;
min=a[0];
for(i=0;i<10;i++)
{
if(a[i]<min)
{min=a[i];
k=i;
}}
printf("min=a[%d]=%d",k,min);
return 0;
}
你没有把下标记录下来
int main(int argc, char** argv)
{
int a[10]={87,78,69,79,98,86,91,75,71,95};
int min,i;
min=a[0];
int num = 0;
for(i=0;i<10;i++)
{
if(a[i]<min)
{
min=a[i];
num = i;
}
}
//交换
int temp = 0;
temp = a[0];
a[0] = a[num];
a[num] = temp;
printf("min=a[%d]=%d",num,min);
return 0;
}
供参考:
#include <stdio.h>
int main()
{
int a[10]={87,78,69,79,98,86,91,75,71,95};
int min,i,t;
min=a[0];
for(i=0;i<10;i++)
if(a[i]<min){
min=a[i];
t=i;
}
printf("min=a[%d]=%d\n",t,a[t]);
a[t] = a[0];//然后将它与数组最前面的元素交换位置
a[0] = min;
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}