这是一道很简单的编程题,但为什么到最后一步交换值的时候,k的值会被修改。
原题:
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
Input:
10个整数
Output:
整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格)
Sample Input:
2 1 3 4 5 6 7 8 10 9
Sample Output:
1 2 3 4 5 6 7 8 9 10
#include
void Input(int *a);
void Output(int *a);
int MaxPos(int *a);
int MinPos(int *a);
int main()
{
int a[9],i,j,t,k;
Input(a);
i = MaxPos(a);
j = MinPos(a);
t = a[0], k = a[9];
a[0] = a[j], a[j] = t;
a[9] = a[i], a[i] = k;
Output(a);
}
void Input(int *a)
{
int i;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
}
void Output(int *a)
{
int i;
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
int MaxPos(int *a)
{
int i = 0,k,max;
max = a[i];
for(i=1;i<10;i++)
{
if(a[i] > max)
{
max = a[i];
k = i;
}
}
return k;
}
int MinPos(int *a)
{
int i = 0,k,min;
min = a[i];
for(i=1;i<10;i++)
{
if(a[i] < min)
{
min = a[i];
k = i;
}
}
return k;
}