题目:输入一行数字,将其按升序输出,且奇数在前,偶数在后
# 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; } } } }