怪盗KID


私信TA

用户名:dotcpp0774863

访问量:427

签 名:

一万年太久,只争朝夕。

等  级
排  名 1931
经  验 2513
参赛次数 0
文章发表 20
年  龄 19
在职情况 学生
学  校 哔哩哔哩
专  业

  自我简介:

解题思路:

注意事项:

/*这里的 EOF 是一个在 <stdio.h> 头文件中定义的宏,它表示文件结束符(End Of File)。
在标准输入中,通常通过按下 Ctrl+D(在 Unix/Linux 系统中)或 Ctrl+Z(然后回车,在 Windows 系统中)来生成 EOF 信号,
这会使 scanf 返回 EOF,从而结束循环。
这个循环会持续读取用户输入的整数,直到遇到 EOF 为止。
每次循环时,scanf 会尝试从标准输入读取一个整数并存储在变量 a 中。
如果读取成功,scanf 返回读取的项目数(在这个例子中为 1),如果遇到 EOF 或读取错误,则返回 EOF(通常是 -1)。
因此,循环会继续执行,直到遇到 EOF。
*/


参考代码:

#include <stdio.h>

//冒泡排序法函数
void bubbleSort(int arr[], int n) {
    int i, j, temp;
    for (i = 0; i < n - 1; i++) {
        // 最后的i个已经排好了  
        for (j = 0; j < n - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                // 交换 arr[j] 和 arr[j+1]  
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

main() {
    
    int nums[10] = { 0 };
    while(scanf("%d",&nums[0]) != EOF) {
        for (int i = 1; i < 10; i++) {
            scanf("%d", &nums[i]);
        }
        int len_1 = 0;          //数组长度
        int len_2 = 0;
        int nums_1[10] = { 0 };     //定义两个数组分别存放奇数与偶数
        int nums_2[10] = { 0 };
        for (int i = 0; i < 10; i++) {
            if (nums[i] % 2 == 0) {
                nums_1[len_1] = nums[i];    //偶数
                len_1++;
            }
            else {
                nums_2[len_2] = nums[i];       //奇数
                len_2++;
            }
        }

        bubbleSort(nums_1, len_1);      //从小到大
        bubbleSort(nums_2, len_2);

        for (int i = len_2 - 1; i >= 0; i--) {
            printf("%d ", nums_2[i]);
        }
        for (int i = 0; i < len_1; i++) {
            printf("%d ", nums_1[i]);
        }
    }
	return 0;
}


 

0.0分

1 人评分

  评论区

  • «
  • »