這個程序調試時 比如輸入1234 最后輸出的b是4321 但返回值(也是b)卻一直是1234不知道為什么貼上代碼#include<iostream>#include"stdlib.h"using namespace std;int reverse(int x){int a=x,b=0;while(a>0){b=b*10+a%10;a=a/10;}x=b;cout<<b<<endl;return b;}int main(){int m;cin>>m;reverse(m);cout<<m;system("pause");}
2 回答

汪汪一只貓
TA貢獻1898條經驗 獲得超8個贊
#include<iostream>#include"stdlib.h"
using namespace std;
int reverse(int x)
{
int a=x,b=0;
while(a>0)
{
b=b*10+a%10;
a=a/10;
}
x=b;
cout<<b<<endl;
return b;
}int main()
{
int m;
cin>>m;
cout<<reverse(m); //幫你改了一下,因為你把m的值傳給了形參m,然后return回的b沒有賦值給m,所以m的值沒有發生改變,還是1234
system("pause");
}

侃侃無極
TA貢獻2051條經驗 獲得超10個贊
#include<iostream>
#include"stdlib.h"
using namespace std;
int reverse(int* x)
{
int a=*x,b=0;
while(a>0)
{
b=b*10+a%10;
a=a/10;
}
*x=b;
cout<<b<<endl;
return b;
}int main()
{
int m;
cin>>m;
reverse(&m);
cout<<m;
system("pause");
}
添加回答
舉報
0/150
提交
取消