首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

交换两个数字的值有关问题,编译没有有关问题,但是运行得不到想要的结果

2012-05-03 
交换两个数字的值问题,编译没有问题,但是运行得不到想要的结果?在写一个交换两个数字的值的时候出现问题,

交换两个数字的值问题,编译没有问题,但是运行得不到想要的结果?
在写一个交换两个数字的值的时候出现问题,麻烦帮助看看:  

  1 #include <stdio.h>
  2 
  3 int a,b,c;
  4 int main(){
  5 printf("请输入两个数字:");
  6 scanf("%d,%d",&a,&b);
  7 fun(a,b);
  8 
  9 }
 10 
 11 int fun(int x,int y){
 12 c=x;
 13 x=y;
 14 y=c;
 15 printf("交换后的两个数字是:%d,%d\n",x,y);
 16 }
 17 
 18 

以上程序,编译没有问题,但是运行的时候却无法交换两个数字的值,请问为什么?
~

[解决办法]
你的参数是输入参数,不是输出参数
要得到正确的结果,有两个办法,一个是使用全局变量,另一个是修改参数输出类型

C/C++ code
int fun(int *x,int *y){c=*x;*x=*y;*y=c;printf("交换后的两个数字是:%d,%d\n",*x,*y);}
[解决办法]
在你的scanf("%d,%d",&a,&b);中多了一个逗号,这样就会使你的输入的第二个数为0,去掉里面的逗号就能正常交换了,还是建议你用指针做一遍

[解决办法]
c++就不要用指针传值,用引用好点
int fun(int x,int y){
修改为

int fun(int& x,int& y){

热点排行