自学内容网 自学内容网

实验07---7-05 交换最小值和最大值

本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。

注意:题目保证最大和最小值都是唯一的。

输入格式:
输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。

输出格式:
在一行中顺序输出交换后的序列,每个整数后跟一个空格。

输入样例:
5
8 2 5 1 4
输出样例:
1 2 5 4 8


自己写的

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int i,a,max=0,min=10000000,k,time_min,time_max;
    scanf("%d",&k);
    int arr[k];
    for(i=0;i<k;i++)
    {
        scanf("%d",&a);
        arr[i]=a;
        if(min>a)
        {
            min=a;
            time_min=i;
        }
    }
    arr[time_min]=arr[0];
    arr[0]=min;
    for(i=0;i<k;i++)
    {
        if(max<arr[i])
        {
            max=arr[i];
            time_max=i;
        }
    }
    arr[time_max]=arr[k-1];
    arr[k-1]=max;
    for(i=0;i<k;i++)
        printf("%d ",arr[i]);
    
    return 0;
}

老师写的

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int main()
{
    int n;
    scanf("%d", &n);
    int a[n];
    for (int i = 0; i < n; i++)
    {
        scanf("%d", a[i]);
    }
    int mini = 0;
    for (int i = 0; i < n; i++)
    {
        if (a[i] < a[mini])
        {
            mini = i;
        }
    }
    int tmp;
    tmp = a[0];
    a[mini] = tmp;

    int maxi = 0;
    for (int i = 0; i < n; i++)
    {
        if (a[i]> a[maxi])
        {
            maxi = i;
        }
    }
    tmp = a[n - 1];
    a[n - 1] = a[maxi];
    a[maxi] = tmp;
    for (int i = 0; i < n; i++)
    {
        printf("%d", a[i]);
    }
    return 0;
}

原文地址:https://blog.csdn.net/ydm_ymz/article/details/143930924

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!