| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 949 人关注过本帖
标题:数值交换函数应用为什么显示无效运算
只看楼主 加入收藏
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
结帖率:95%
收藏
 问题点数:0 回复次数:7 
数值交换函数应用为什么显示无效运算
#include "stdio.h"
#include "conio.h"

void swap(int x,int y)
{
 int temp;
 temp=x;
 x=y;
 y=temp;
}
sort(int a,int n)
{
 int i,j;
 for(i=0;i<n;i++)
   for(j=i;j<n;j++)
   if(a[i]>a[j])swap(a[i],a[j]);
}
main()
{
 int i,number[3];
 printf("enter 3:\n");
 for(i=0;i<3;i++)
    scanf("%d",&number[i]);
 sort(number,3);
 for(i=0;i<3;i++)
 printf("%d",number[i]);
 getch();
}
运行为什么if(a[i]>a[j])swap(a[i],a[j])显示无效运算
搜索更多相关主题的帖子: 应用 运算 数值 函数 
2010-01-04 12:14
fqtb16
Rank: 7Rank: 7Rank: 7
来 自:上海
等 级:黑侠
帖 子:96
专家分:504
注 册:2009-12-28
收藏
得分:0 
形参值的改变不会引起实参值的改变
你用指针来做试试、?
同时
sort(int a,int n)
{
int i,j;
for(i=0;i<n;i++)
   for(j=i;j<n;j++)
   if(a[i]>a[j])swap(a[i],a[j]);
}
定义有问题
你改成sort(int *a,int n)看看


爱拼才会赢
2010-01-04 12:23
xu362726904
Rank: 6Rank: 6
等 级:侠之大者
帖 子:160
专家分:471
注 册:2009-6-18
收藏
得分:0 
#include "stdio.h"
#include "conio.h"

void swap(int *x,int *y)//这里要用指针,你没有返回值,就用指针,否则不会改变数组里的值
{
int temp;
temp=*x;
*x=*y;
*y=temp;
}
sort(int *a,int n)//这里要用指针,传递过来的是数组的首地址
{
int i,j;
for(i=0;i<n;i++)
   for(j=i;j<n;j++)
   if(a[i]>a[j])swap(&a[i],&a[j]);
}
main()
{
int i,number[3];
printf("enter 3:\n");
for(i=0;i<3;i++)
    scanf("%d",&number[i]);
sort(number,3);
for(i=0;i<3;i++)
printf("%d ",number[i]);
getch();
}
2010-01-04 12:26
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
收藏
得分:0 
不是说用数组名作函数参数时,形参数组值的变化会传递给实参数组的吗?
2010-01-04 12:29
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:0 
你是单个数在操作
你的名字··和我同学一样·
2010-01-04 12:36
ufozhoujie
Rank: 2
来 自:湖南常德
等 级:论坛游民
帖 子:14
专家分:33
注 册:2010-1-4
收藏
得分:0 
其实数组名是个一个地址,用数组名传递时,理所当然的就把那个地址传过去了咯···所以归结起来就是用的指针哈!!你的那个程序,实际上把一个个具体的数传给形参,函数调用完,形参消失,等于做无用功!

勤奮、專心、毅力、守時。。。
2010-01-04 13:22
ufozhoujie
Rank: 2
来 自:湖南常德
等 级:论坛游民
帖 子:14
专家分:33
注 册:2010-1-4
收藏
得分:0 
sort(int a,int n)
   这里还有错误,应该是sort(int a[],int n)

勤奮、專心、毅力、守時。。。
2010-01-04 13:30
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
收藏
得分:0 
怎么看是传递一个数呢?sort(number,3)不是把数组的首地址传递给形参a吗?
2010-01-04 13:30
快速回复:数值交换函数应用为什么显示无效运算
数据加载中...
 
   



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

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