| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 450 人关注过本帖
标题:这个程序到底那出问题了?
只看楼主 加入收藏
xw475210183
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2012-12-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
这个程序到底那出问题了?
#include<stdio.h>
#define N 6
exchange(int a[N])  //调整数组,让A的左边是奇数,右边是偶数.
{int i=0,j=N-1,t;
  while(i!=j)
  {while(a[i]%2!=0) //a[i]为奇数  +1
   i++;
 while(a[j]%2==0)    //a[j]为偶数,-1
   j--;
 if(i<j)     //进行数组交换
 {  t=a[j];
    a[j]=a[i];
    a[i]=a[j];
 }
}
}
main()
{int i, a[N];
for(i=0;i<N;i++)
    scanf("%d",&a[i]);
exchange(a[N]);   
printf("%d,%d\n",a[0],a[N-1]);
}
搜索更多相关主题的帖子: include 
2012-12-16 12:28
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
void exchange(int a[])  声明时应该这样声明
exchange(a);            调用时应该这样调用

不过你的子函数貌似陷入了死循环  现在没时间帮你排查

DO IT YOURSELF !
2012-12-16 12:42
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
if(i<j)     //进行数组交换
{
  t=a[j];
    a[j]=a[i];    a[i]=a[j];}

总有那身价贱的人给作业贴回复完整的代码
2012-12-16 15:00
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
你这叫什么交换啊?
if(i<j)     //进行数组交换
{
  t=a[j];
    a[j]=a[i];
    a[i]=a[j];
}

总有那身价贱的人给作业贴回复完整的代码
2012-12-16 15:01
xiaomingtutu
Rank: 2
等 级:论坛游民
帖 子:10
专家分:35
注 册:2012-12-14
收藏
得分:20 
程序代码:
//他们指出错误,我就把代码给你吧,运行过,没啥问题
#include<stdio.h>
#define N 6
void exchange(int *a)  //调整数组,让A的左边是奇数,右边是偶数.
{
  int i=0,j=N-1,t;
  while(i<j)
  {
    while(a[i]%2!=0) //a[i]为奇数  +1
      i++;
    while(a[j]%2==0)    //a[j]为偶数,-1
      j--;
    if(i<j)     //进行数组交换
    {
       t=a[j];
       a[j]=a[i];
       a[i]=t;
     }
  }
}

 main()
{
    int i, a[N];
    for(i=0;i<N;i++)
      scanf("%d",&a[i]);
    exchange(a);
    for(i=0;i<N;i++)
      printf("%d ",a[i]);
//printf("%d,%d\n",a[0],a[N-1]);
}
2012-12-16 16:09
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
程序代码:
#include<stdio.h>
#define N 6
void exchange(int *a)
{
  int i=0,j=N-1,t;
  while(i<j)
  {
    while(a[i]%2!=0)
      i++;
    while(a[j]%2==0)
      j--;
    if(i<j)
    {
       t=*(a+j);
       *(a+j)=*(a+i);
       *(a+i)=t;
     }
  }
}
main()
{
    int i, a[N];
    for(i=0;i<N;i++)
      scanf("%d",&a[i]);
    exchange(a);
    for(i=0;i<N;i++)
      printf("%d ",a[i]);}
呵呵,来晚了,也发个供楼主参考吧

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-16 16:49
xw475210183
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2012-12-12
收藏
得分:0 
回复 6楼 yaobao
还是谢谢你 !!
2012-12-16 17:41
快速回复:这个程序到底那出问题了?
数据加载中...
 
   



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

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