总时间限制:
1000ms
内存限制:
65536kB
描述
给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。
输入
共2行:
第1行为 N;
第2行为 N 个正整数,其间用空格间隔。
输出
增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。
样例输入
10 1 3 2 6 5 4 9 8 7 10
样例输出
1,3,5,7,9
#include <iostream>
#include <cstdio>
using namespace std;
void bubblesort(int a[],int n){
int i,temp;
while(n--){
for(i=0;i<n;i++){
if(a[i]>a[i+1]){
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
}
int main ()
{
int a[501],n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
int cnt=0;
bubblesort(a,n);
for(int i=0;i<n;i++){
if(a[i]%2!=0){
cnt++;
}
}
int num=0;
for(int i=0;i<n;i++){
if(a[i]%2!=0){
printf("%d",a[i]);
num++;
if(num!=cnt){
printf(",");
}
}
}
return 0;
}
运用简单排序,可改进为冒泡排序。
#include <iostream>
#include <cstdio>
using namespace std;
void selectsort(int a[],int n){
int i,j,minindex,temp;
for(i=0;i<n-1;i++){
minindex=i;
for(j=i+1;j<n;j++){
if(a[minindex]>a[j]){
minindex=j;
}
}
if(minindex!=i){
temp=a[i];
a[i]=a[minindex];
a[minindex]=temp;
}
}
}
int main ()
{
int a[501],n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
int cnt=0;
selectsort(a,n);
for(int i=0;i<n;i++){
if(a[i]%2!=0){
cnt++;
}
}
int num=0;
for(int i=0;i<n;i++){
if(a[i]%2!=0){
printf("%d",a[i]);
num++;
if(num!=cnt){
printf(",");
}
}
}
return 0;
}
还可再改进。
#include <iostream>
#include <cstdio>
#include <stdbool.h>
using namespace std;
void bubblesort(int a[],int n){
int i,temp;
bool flag=true;
while(n--&&flag){
flag=false;
for(i=0;i<n;i++){
if(a[i]>a[i+1]){
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
flag=true;
}
}
}
}
int main ()
{
int a[501],n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
int cnt=0;
bubblesort(a,n);
for(int i=0;i<n;i++){
if(a[i]%2!=0){
cnt++;
}
}
int num=0;
for(int i=0;i<n;i++){
if(a[i]%2!=0){
printf("%d",a[i]);
num++;
if(num!=cnt){
printf(",");
}
}
}
return 0;
}