第二个for里面判断你写的是小于0,所以循环都没进,要改成10,看样子应该是你写漏了,加油
要求你写三个函数,参考如下:
#include <stdio.h>
void input(int a[])
{
int i;
for (i=0;i<10;i++)
{
scanf_s("%d",&a[i]);
}
}
void deal(int a[])
{
int i,max,min,maxindex,minindex,tmp;
max = min = a[0];
maxindex = minindex = 0;
for (i=1;i<10;i++)
{
if(min > a[i]) {min = a[i];minindex = i;}
if(max < a[i]) {max = a[i];maxindex = i;}
}
//最小的数与第一个数兑换
tmp = a[minindex];
a[minindex] = a[0];
a[0] = tmp;
//最大的数与最后一个数兑换
tmp = a[maxindex];
a[maxindex] = a[9];
a[9] = tmp;
//其实这里会有个问题,可以想一下当最小的数在a[9]、最大的数在a[0]时会出现什么情况
//这里就不再做处理了,完全按照题目要求来写
}
void display(int a[])
{
int i;
for (i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
int main()
{
int a[10];
input(a);
deal(a);
display(a);
return 0;
}