标题:用指针对数组元素奇偶排列
只看楼主
守候幸福
Rank: 2
来 自:井冈山大学
等 级:论坛游民
帖 子:16
专家分:10
注 册:2013-3-24
结帖率:60%
已结贴  问题点数:20 回复次数:7 
用指针对数组元素奇偶排列
#include<stdio.h>
#define N 10
void arrsort(int a[],int n);
int main()
{
    int a[N],i;
    for(i=0;i<N;i++)
        scanf("%d",&a[i]);
    arrsort(a,N);
    printf("输出数组元素:\n");
    for(i=0;i<N;i++)
        printf("%d ",a[i]);
}
void arrsort(int a[],int n)
{
    int *p,*q,temp;
    p=a;
    q=a+n-1;
    if(p<q)
    {
        if(*q%2==0)
            q--;
        if(*p%2!=0)
            p++;
        if(p<q)
        {
            temp=*p;
            *p=*q;
            *q=temp;
        }
        p++;
        q--;   
    }
}
  看看为什么就是的不到答案??????         
搜索更多相关主题的帖子: 元素 void include 
2013-05-03 21:43
czzdcn123
Rank: 7Rank: 7Rank: 7
来 自:江西
等 级:黑侠
威 望:3
帖 子:258
专家分:510
注 册:2013-3-7
得分:3 
if(*q%2==0)
            q--;
        if(*p%2!=0)
            p++;
楼主这里完全可以用if....else语句吗   
还有你这里的
if(p<q)
    {
        if(*q%2==0)
            q--;
        if(*p%2!=0)
            p++;
        if(p<q)
后面的语句if(p<q)  起到作用了吗
2013-05-03 22:33
bczger
Rank: 2
等 级:论坛游民
帖 子:13
专家分:11
注 册:2013-4-21
得分:3 
题都不清楚,什么奇偶排列啊
2013-05-03 22:48
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
得分:3 
要用到循环

www.qunxingw.wang
2013-05-04 08:03
小小玉
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:47
专家分:156
注 册:2013-4-13
得分:3 
指针符号*从右向左结合的,你这样做*q%2,都是地址除以2然后取余之后得到这个地址里面的值,应该这样吧(*q)%2.
2013-05-04 12:06
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
得分:3 
void arrsort(int a[],int n)
{
    int *p,*q,temp;
    p=a;
    q=a+n-1;
    while(p<q)
    {
        if(*q%2==0)
            q--;
        if(*p%2!=0)
            p++;
        if(p<q)
        {
            temp=*p;
            *p=*q;
            *q=temp;
        }
        p++;
        q--;
    }
}
是数组的左边是奇数,右边是偶数吧?
2013-05-08 16:49
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2391
专家分:13384
注 册:2013-3-3
得分:3 
if(p<q)
    {
        if(*q%2==0)
            q--;
        if(*p%2!=0)
            p++;
        if(p<q)
        {
            temp=*p;
            *p=*q;
            *q=temp;
        }
        p++;
        q--;   
    }
这样处理显然不对,如果不成立,那么这段程序就直接跳出去了,你还排什么序列呢?根据你的要求,对奇偶数进行排序,你可以进行判断,然后进行存储,排序

Maybe
2013-05-08 20:19
hao210327
Rank: 1
等 级:新手上路
帖 子:8
专家分:8
注 册:2013-5-10
得分:3 
慢慢研究一下
2013-05-10 11:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-406148-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043536 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved