c语言-交换最大值和最小值

交换最大值和最小值

下面程序的功能是从键盘输入10个整数,用函数编程实现计算其最大值最小值,并互换它们所在数组中的位置。程序运行结果如下:

Input n(n<=10):10↙

Input 10 Numbers:1 4 3 0 –2 6 7 2 9 -1 ↙

Exchange results:     1     4     3     0     9     6     7     2    -2    -1

程序:

#include  <stdio.h>
void ReadData(int a[], int n);
void PrintData(int a[], int n);
void  MaxMinExchang(int a[], int n);
void Swap(int *x, int *y);
int main()
{
    int  a[10], n;
    printf("Input n(n<=10):");
    scanf("%d", &n);
    printf("Input %d numbers:", n);
    ReadData(a, n); 
    MaxMinExchang(a, n);
    printf("Exchange results:");
    PrintData(a, n); 
    return 0;
}
 
/* 函数功能:输入数组a的n个元素值 */
void ReadData(int a[], int n)  
{
    int i;
    for (i=0; i<n; i++)
     {
          scanf("%d", &a[i]);
     }
}
 
/* 函数功能:输出数组a的n个元素值 */
void PrintData(int a[], int n)  
{
    int i;
    for (i=0; i<n; i++)
     {
          printf("%5d", a[i]);
     }
    printf("\n");
}
 
/* 函数功能:将数组a中的最大数与最小数位置互换 */
void  MaxMinExchang(int a[], int n)
{
    int  maxValue = a[0], minValue = a[0], maxPos = 0, minPos = 0;
    int  i;
    for (i=1; i<n; i++)
    {
        if (a[i] > maxValue)
        {
            maxValue =a[i];
            maxPos = i;
        }
        if (a[i] < minValue)
        {
            minValue = a[i];
            minPos = i;
       }
}
        Swap( &a[maxPos], &a[minPos]);
}
 
/* 函数功能:两整数值互换 */
void  Swap(int *x, int *y)                
{
    int  temp;
    temp = *x;                          
    *x = *y; 
                    
    *y = temp;            
}

猜你喜欢

转载自blog.csdn.net/suxiaorui/article/details/89054865