这个好难啊,写了两次了都没通过,代码到底是什么呢主要用的是一维数组,不太擅长
设置变量min记录最小元素的值,loc记录最小元素下标,遍历数组发现有小于min的元素就将值赋给min,下标赋给loc。最后判断这个元素是否为第一个元素,如果不是就将它与数组第一个元素交换。
#include<stdio.h>
int main()
{
int a[10];
int i,temp,min,loc;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
min=a[0];
loc=0;
for(i=0;i<10;i++)
{
if(a[i]<min)
{
min=a[i];
loc=i;
}
}
if(loc!=0)
{
temp=a[0];
a[0]=a[loc];
a[loc]=temp;
}
for(i=0;i<10;i++)
printf("%3d",a[i]);
return 0;
}
#include<stdio.h>
int main()
{
int a[10],min,i,b,temp;
for (int i = 0; i < 10; i++)
{
scanf("%d", &a[i]);
}
min = a[0];
for (i = 1; i < 10; i++)
{
if (a[i] < min)
{
min = a[i];
b = i;
}
}
temp = a[0];
a[0] = a[b];
a[b] = temp;
for (i = 0; i < 10; i++)
printf("%3d", a[i]);
return 0;
}
你是不会写,还是写了错误。这个很简单的,我觉得你应该就是错在最后的格式上,%3d就可以了