作业帮 > 综合 > 作业

C语言.任意n个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/24 07:03:49
C语言.任意n个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.
如何实现 n个整数
/*

*/
#include <stdio.h>
#define MAXSIZE 100 
#define MAX(a, b) (a) >= (b) ? 1 : 0  
//判断a是否大于b
#define MIN(a, b) (a) <= (b) ? 1 : 0
//判断a是否小于b

int main(void)
{
    int i, n, dat[MAXSIZE];
    int x = 0, y = 0;
    int max = 0, min = 0X0FFFFFFF;

    printf("\n请输入n( n < 100 ):");
    scanf("%d", &n);

    printf("\n请输入%d个数据:\n", n);
    for (i = 0; i < n; i++)
    {
        scanf("%d", dat + i); //输入
        if ( MAX(dat[i], max) )
        {
            max = dat[i]; //刷新最大值
            x = i; //保存最大数在第几位
        }
        else if ( MIN(dat[i], min) )
        {
            min = dat[i];//刷新最小值
            y = i; //保存最小数在第几位
        }
     
    }

    if ( (x == (n - 1)) && (y == 0) ){
        //如果 最大数在最末位且最小为在最前为
    }
    else if ( y == (n - 1) )
    {
        //如果 最小数在最末尾
        y = x;

        dat[n - 1] = dat[n - 1] ^ dat[x];
        dat[x]     = dat[n - 1] ^ dat[x];
        dat[n - 1] = dat[n - 1] ^ dat[x];    //交换

        dat[0] = dat[0] ^ dat[y];
        dat[y] = dat[0] ^ dat[y];
        dat[0] = dat[0] ^ dat[y]; //交换

    }
    else
    {    
        dat[n - 1] = dat[n - 1] ^ dat[x];
        dat[x]     = dat[n - 1] ^ dat[x];
        dat[n - 1] = dat[n - 1] ^ dat[x];    //交换

        dat[0] = dat[0] ^ dat[y];
        dat[y] = dat[0] ^ dat[y];
        dat[0] = dat[0] ^ dat[y]; //交换    
    }

    printf("\n处理后的结果:");
    for (i = 0; i < n; i++){
        printf(" %d", dat[i]);
    }//输出

    
    return 0;
}
再问: ... ����Ҫ��֪�� ��û������ �����趨100 �� 1000ʲô�� ,������malloc ��������ô
再答: C99�淶�п��Զ��嶯̬���飬���磺n = 5;
int a[n];
n = 6;
int b[n];����ȷ����ı�����֧�ֲ�֧��C99������еĻ�����û�ж�õİ취��ֻ����Ϊ�ܴ�ܴ
C语言.任意n个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换. C语言输入10个整数,将其中最小的数和第一个数对换,把最大的数与最后一个数对换.(用指针) C语言:要求输入10个数 将其中最小的数与第一个数对换,把最大的数与最后一个数对换 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.用指针处理 C 语言 输入十个整数,将其中的最小数与第一个数对换,将最大数于最后一个对换 要求用指针来写 用C语言编程序:用指针方法处理,输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.必须利用宏定义 C语言:输入10个整数,将其中最小的数与第一个数对换,最大的数与最后一个数对换,并输出兑换后的10个数 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换,并输出对换后的10个数. c++语言求输入10个整数,将其中最小的书与第一个数对换,把最大的数与最后的一个数对换,然后输出者10个数 C语言输入10个整数,将其中最小的数鱼第一个数对换,把最大的数鱼最后一个数对换写三个函数:1、输入10个整数 2、进行处 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.写三个函数; 输出排序后的 c语言大神快来做道简单得掉渣的题:输入10个整数,将其中最小的数与第一个数对换,把最大