| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 522 人关注过本帖
标题:[求助]这个超级简单的算法!!错在哪??
只看楼主 加入收藏
yybryan2005
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-11-18
收藏
 问题点数:0 回复次数:3 
[求助]这个超级简单的算法!!错在哪??

#include "stdio.h"
# define n 20


void exchange(int *a);
void swap(int *va,int *vb);
void main(void)
{
int i;
int a[n]={1,21,0,47,60,15,84,65,77,88,100,93,8,17,36,5,24,63,72,20};
printf("hhh\n");
for(i=0;i<n;i++) /*排序前的数据*/
printf("%d ",a[i]);
printf("\n");
exchange(a);
printf("hjkhk\n");
for(i=0;i<n;i++) /* 排序后的数据*/
printf("%d ",a[i]);
printf("\n");
getch();
}

void exchange(int *a)
{int i,j;
for(i=0;i<=n-2;i++)
for(j=i+1;j<=n-1;j++)
if(a[i]>a[j])
swap(a[i],a[j]);
}
void swap(int *va,int *vb)
{
int t;
t=*vb;
*vb=*va;
*va=t;
}
我用的是Win-Tc运行的但是提示出错!!求大侠看看??

搜索更多相关主题的帖子: 算法 超级 
2006-11-20 19:49
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 

#include "stdio.h"
# define n 20


void exchange(int *a);
void swap(int *va,int *vb);
void main(void)
{
int i;
int a[n]={1,21,0,47,60,15,84,65,77,88,100,93,8,17,36,5,24,63,72,20};
printf("hhh\n");
for(i=0;i<n;i++) /*排序前的数据*/
printf("%d ",a[i]);
printf("\n");
exchange(a);
printf("hjkhk\n");
for(i=0;i<n;i++) /* 排序后的数据*/
printf("%d ",a[i]);
printf("\n");
getch();
}

void exchange(int *a)
{int i,j;
for(i=0;i<=n-2;i++)
for(j=i+1;j<=n-1;j++)
if(a[i]>a[j])
swap(a+i,a+j);/*错在这里,不可以传内容值,是要传址*/
}
void swap(int *va,int *vb)
{
int t;
t=*vb;
*vb=*va;
*va=t;
}


[此贴子已经被作者于2006-11-20 22:02:13编辑过]


谁有强殖装甲第二部,可以Q我460054868
2006-11-20 21:58
yybryan2005
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-11-18
收藏
得分:0 

但是书上是这样的,我试了这也不行的。但是这是书本的,
#include "stdio.h"
# define n 20


void exchange(int *a);
void swap(int &va,int &vb);
void main(void)
{
int i;
int a[n]={1,21,0,47,60,15,84,65,77,88,100,93,8,17,36,5,24,63,72,20};
printf("hhh\n");
for(i=0;i<n;i++) /*排序前的数据*/
printf("%d ",a[i]);
printf("\n");
exchange(a);
printf("hjkhk\n");
for(i=0;i<n;i++) /* 排序后的数据*/
printf("%d ",a[i]);
printf("\n");
getch();
}

void exchange(int *a)
{int i,j;
for(i=0;i<=n-2;i++)
for(j=i+1;j<=n-1;j++)
if(a[i]>a[j])
swap(a[i],a[j]);
}
void swap(int &va,int &vb)
{
int t;
t=vb;
vb=va;
va=t;
}

还可以看看这个吗??


为什么?我就这样难学编程呢?
2006-11-20 22:17
yybryan2005
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-11-18
收藏
得分:0 
刚才忘记了谢谢你了,谢谢你

为什么?我就这样难学编程呢?
2006-11-20 22:19
快速回复:[求助]这个超级简单的算法!!错在哪??
数据加载中...
 
   



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

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