解题思路:
注意事项:
/*这里的 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 人评分
C语言训练-求素数问题 (C语言代码)浏览:1500 |
简单的a+b (C语言代码)浏览:556 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:597 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1005 |
Tom数 (C语言代码)浏览:574 |
C二级辅导-统计字符 (C语言代码)浏览:512 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:608 |
良心推荐——>题解1049:C语言程序设计教程(第三版)课后习题11.1 (C语言描述——简单明了,时间复杂度低)浏览:1308 |
最好的,浏览:597 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:533 |