最大数与最小数调换位置
题目内容:
下面程序的功能是从键盘任意输入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): "); scanf("%d", &n); printf("Input %d Numbers: ", n); for (i=0; i<n; i++) { scanf("%d", &a[i]); } MaxMinExchang(a, n); printf("After MaxMinExchange: "); for (i=0; i<n; i++) { printf("%d ", a[i]); } printf(" "); 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): "
"Input %d Numbers: "
输入格式: "%d"
输出格式:"%d " (注意:%d后面有一个空格)
输出提示信息:"After MaxMinExchange: "
#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): "); scanf("%d", &n); printf("Input %d Numbers: ", n); for (i=0; i<n; i++) { scanf("%d", &a[i]); } MaxMinExchang(a, n); printf("After MaxMinExchange: "); for (i=0; i<n; i++) { printf("%d ", a[i]); } printf(" "); 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; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。