题目:输入一行数字,将其按升序输出,且奇数在前,偶数在后
c
#include<stdio.h>
void bubbleSort(int* arr, int n);
int main(){
int n, i, input_nums;
printf("请输入数字个数: ");
scanf("%d", &n);
int odd[n / 2 + 1], even[n / 2 + 1];//用来存放奇数和偶数
int odd_count = 0, even_count = 0;
for(i = 0; i < n; i ++){
scanf("%d", &input_nums);
//把数据存入相应的数组中
if(input_nums % 2 == 0){
even[even_count++] = input_nums;
}
else{
odd[odd_count++] = input_nums;
}
}
//对数据元素进行排序
bubbleSort(odd, odd_count);
bubbleSort(even, even_count);
//输出排序后的奇数
printf("升序输出,奇数在前:");
for(i = 0; i < odd_count; i++){
printf("%d", odd[i]);
}
//输出排序后的偶数
for(i = 0; i < even_count; i++){
printf("%d", even[i]);
}
printf("\n");
return 0;
}
//冒泡排序
void bubbleSort(int* arr, int n){
int i, j, temp;
for(i = 0; i < n - 1; i ++){
for(j = 0; j < n - (i + 1); j ++){
//升序排列
if(arr[j] > arr[j + 1]){
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}