将一个数组的奇数和偶数分开.c

本文介绍了一个简单的C语言程序,该程序能够将输入的数组中的奇数和偶数进行分离,确保所有的奇数位于数组的左侧,而偶数位于右侧。通过使用双指针技巧,程序实现了高效的奇偶元素交换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*将一个数组的奇数和偶数分开,奇数在左,偶数在右*/
#include<stdio.h>
int main()
{
int m[10];
int i,j,k,tmp;
printf("please input 10 numbers:\n m[]= ");
    for(i=0;i<10;i++)
    scanf("%d",&m[i]);
         while (getchar()!='\n') ; //清空缓存区的\n否则getchar处可能执行出错
i=0,j=9;
while(i<j)
{
while(i<=9&&m[i]%2) //此时m[i]为偶数则跳出循环
i++;
#ifdef DEBUG
printf ("m[i]=%d\t",m[i]) ;
#endif
while(j>=0&&(m[j]%2==0)) //此时m[j]为奇数则跳出循环
j--;
#ifdef DEBUG
printf ("m[j]=%d\n",m[j]) ;
#endif
    if(i < j) 
{
tmp = m[i];
m[i]=m[j];
m[j] = tmp;
   }
#ifdef DEBUG
        printf("m[]= ");
             for(k=0;k<10;k++)
    printf("%d ",m[k]);
        printf("\n");
          getchar () ;
#endif
}

printf("the final m[]= ");
for(i=0;i<10;i++)
printf("%d ",m[i]);
printf("\n");


return 0;
}

/*用 gcc -DDEBUG  -o  xxxx  xxxx.c可调出debug信息* /
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值