问题:
输入n个数,n<=100,并且给这n个数中的奇数,按升序排列并输出。
思路:
- 输入n个数—scanf("%d",&n);
- 因为还要给n个数排列,所以在数组中输入n个数;
- 随后,进行奇数的筛选。每筛选一个奇数,便给奇数存进另一数组。
- 随后在存奇数的数组内进行冒泡排序。
思路如下:
#include <stdio.h>
#include <malloc.h>
int main()
{
int n;
printf("哥们儿,你想输入几个数啊\n");
scanf("%d",&n);
int *a;
a=(int*)malloc(sizeof(int)*n);
int q;
printf("别墨迹了,输入%d个数字吧\n",n);
for(q=0;q<n;q++)
{
scanf("%d",&a[q]);
}
int k,p=0;
int b[100];
int sum=0;
for(k=0;k<n;k++)//从输入的数字中筛选奇数,存进另一数组
{
if(a[k]%2 !=0)
{
b[p]=a[k];
p++;
sum++;
}
}
int w,e;
for(w=0;w<sum-1;w++)
{
int temp;
for(e=0;e<sum-1-w;e++)
{
if(b[e]>b[e+1])
{
temp =b[e];
b[e]=b[e+1];
b[e+1]=temp;
}
}
}
int t;
printf("其中的奇数按照从小到大分别是\n");
for(t=0;t<sum;t++)
{
printf("%d ",b[t]);
}
return 0;
}