#16708: 請問各位大大哪裡錯了(問題在最下面的註解那邊


kolagh7486 (電腦前的咖啡)

學校 : 國立臺中高級工業職業學校
編號 : 88363
來源 : [1.200.121.142]
最後登入時間 :
2022-09-24 16:06:42
a038. 數字翻轉 | From: [36.234.96.162] | 發表日期 : 2019-01-31 23:05

#include <sstream>

using namespace std;

int out0(int);
int x,number;
string out_string="";
stringstream sl;

int main()
{


while(cin>>x)
{

number = out0(x);
sl<<number;
sl>>out_string;
char out0[100];

itoa(number,out0,10);

for(int i=out_string.length()-1;i>=0;i--)
out_string = out_string+out0[i];

cout<<out_string;
}

}

int out0(int x)
{
while(x%10==0)
{
x=x/10;
}
return x;
}

/*假如我cin>>955996
但他卻cout<<955996699559
why??如何解決!!!

*/

 
#16713: Re:請問各位大大哪裡錯了(問題在最下面的註解那邊


shkevin (kevin)

學校 : 國立溪湖高級中學
編號 : 83084
來源 : [1.170.246.48]
最後登入時間 :
2025-03-20 11:43:42
a038. 數字翻轉 | From: [182.155.126.126] | 發表日期 : 2019-02-01 12:04

#include

using namespace std;

int out0(int);
int x,number;
string out_string="";
stringstream sl;

int main()
{


while(cin>>x)
{

number = out0(x);
sl<<number;
sl>>out_string;
char out0[100];

itoa(number,out0,10);

for(int i=out_string.length()-1;i>=0;i--)
out_string = out_string+out0[i];

cout<<out_string;
}

}

int out0(int x)
{
while(x%10==0)
{
x=x/10;
}
return x;
}

/*假如我cin>>955996
但他卻cout<<955996699559
why??如何解決!!!

*/


sl>>out_string;  你的 out_strig 字串己經有值了

你後面  out_string = out_string+out0[i];

就是在 out_string 後面加上 out0[i]  << 這裡發生問題的  ,  在原本的字串後面一直加上新的字串 ,所以會錯

若你要用這方法.   那麼輸出答案時就用新的字串來讀入  , 不要用 out_string 就行了

 
ZeroJudge Forum