输入格式: 输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。 输出格式: 在一行中顺序输出交换后的序列,每个整数后跟一个空格。
int main()
{
int i, N, a[10], max, min, t;
scanf("%d\n", &N);
for (i = 0; i < N; i++)
scanf("%d ", &a[i]);
min = a[0], max = a[N - 1];
for (i= 1; i< N; i++)
if (a[i] < min) a[i] = min, a[0] = t, a[0] = a[i], a[i] = t;
for (i = 0; i < N - 1; i++)
if (a[i] > max) a[i] = max, a[N - 1] = i, a[N - 1] = a[i], a[i] = t;
for (int i = 0; i < N; i++)
printf("%d ", a[i]);
return 0;
}
你这个交换有问题,给你更改下
代码:
int i, N, a[10], max, min, t=0;
scanf("%d\n", &N);
for (i = 0; i < N; i++)
{
scanf("%d", &a[i]);
}
min = a[0], max = a[N - 1];
for (i = 0; i < N; i++)
{
if (a[i] < min)
{
min = a[i]; //记录最小值
int temp = a[0];
a[0] = a[i];
a[i] = temp;
/*a[i] = min;
a[0] = t;
a[0] = a[i];
a[i] = t;*/
}
}
for (i = 0; i < N - 1; i++)
{
if (a[i] > max)
{
max = a[i]; //记录最大值
int temp = a[N-1];
a[N - 1] = a[i];
a[i] = temp;
/* a[i] = max;
a[N - 1] = i;
a[N - 1] = a[i];
a[i] = t;*/
}
}
for (int i = 0; i < N; i++)
{
printf("%d ", a[i]);
}
return 0;
效果: