题目内容:
下面程序的功能是从键盘任意输入n个数,然后找出其中的最大数与最小数,并将其位置对换。目前程序中存在错误,请修改正确。并按照给出的程序运行结果示例检查修改后的程序。
程序运行结果示例1:
Input n(n<=10):
5↙
Input 5 Numbers:
12 4 6 7 0↙
After MaxMinExchange:
0 4 6 7 12
程序运行结果示例2:
Input n(n<=10):
6↙
Input 6 Numbers:
7 -3 2 0 56 18↙
After MaxMinExchange:
7 56 2 0 -3 18
#include <stdio.h>
#define ARR_SIZE 10
int main()
{
int a[ARR_SIZE], i, n;
printf("Input n(n<=10):\n");
scanf("%d", &n);
printf("Input %d Numbers:\n", n);
for (i=0; i<n; i++)
{
scanf("%d", &a[i]);
}
MaxMinExchang(a, n);
printf("After MaxMinExchange:\n");
for (i=0; i<n; i++)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
void MaxMinExchang(int *a, int n)
{
int maxValue = a[0], minValue = a[0], maxPos, minPos;
int i, temp;
for (i=0; i<n; i++)
{
if (a[i] > maxValue)
{
maxValue = a[i];
maxPos = i;
}
if (a[i] < minValue)
{
minValue = a[i];
minPos = i;
}
}
temp = a[maxPos];
a[maxPos] = a[minPos];
a[minPos] = temp;
}
输入提示信息: "Input n(n<=10):\n"
"Input %d Numbers:\n"
输入格式: "%d"
输出格式:"%d " (注意:%d后面有一个空格)
输出提示信息:"After MaxMinExchange:\n"
#include <stdio.h>
#define ARR_SIZE 10
void MaxMinExchang(int a[], int n);
int main()
{
int a[ARR_SIZE], i, n;
printf("Input n(n<=10):\n");
scanf("%d", &n);
printf("Input %d Numbers:\n", n);
for (i=0; i<n; i++)
{
scanf("%d", &a[i]);
}
MaxMinExchang(a, n);
printf("After MaxMinExchange:\n");
for (i=0; i<n; i++)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
void MaxMinExchang(int *a, int n)
{
int maxValue = a[0], minValue = a[0], maxPos=0, minPos=0;
int i, temp;
for (i=0; i<n; i++)
{
if (a[i] > maxValue)
{
maxValue = a[i];
maxPos = i;
}
else if(a[i]<minValue)
{
minValue = a[i];
minPos = i;
}
}
temp = a[maxPos];
a[maxPos] = a[minPos];
a[minPos] = temp;
}