#18393: WA (line:58)


rmp4joxj6 (盧邊談話)

學校 : 中原大學
編號 : 97841
來源 : [27.247.230.6]
最後登入時間 :
2020-10-20 18:00:03
d098. Stringstream運用練習(C++) -- 說明文件出自C++ Reference | From: [119.77.170.142] | 發表日期 : 2019-07-09 12:36

#0: 100% WA (line:58)

您的答案為: 960
正確答案為: 891

使用C++,程式碼如下:

#include <cmath>
#include <sstream>
#include <iostream>
using namespace std;
int main(){
  int sum,carry;
  bool check=true;
  string line,num;
  stringstream ss;
  while(getline(cin,line)){
    sum=0;
    ss.clear();
    ss<<line;
    while(!ss.eof()){
      ss>>num;
      for(int a=0;a<num.size();a++){
        if(!isdigit(num[a])){
          check=false;
          break;
        }
      }
      if(!check) check=true;
      else{
        carry=0;
        for(int a=num.size()-1;a>=0;a--) sum+=((num[a]-'0')*pow(10,carry)) , carry++;
      }
    }
    cout<<sum<<'\n';
  }
}

不知道少考慮了什麼,求助  -.-

 
#19739: Re:WA (line:58)


d10731308 (QWQ)

學校 : 臺北市立第一女子高級中學
編號 : 84091
來源 : [219.70.77.59]
最後登入時間 :
2023-01-31 13:30:25
d098. Stringstream運用練習(C++) -- 說明文件出自C++ Reference | From: [203.64.52.101] | 發表日期 : 2019-10-25 16:14

#0: 100% WA (line:58)

您的答案為: 960
正確答案為: 891

使用C++,程式碼如下:

#include
#include
#include
using namespace std;
int main(){
  int sum,carry;
  bool check=true;
  string line,num;
  stringstream ss;
  while(getline(cin,line)){
    sum=0;
    ss.clear();
    ss<<line;
    while(!ss.eof()){
      ss>>num;
      for(int a=0;a<num.size();a++){
        if(!isdigit(num[a])){
          check=false;
          break;
        }
      }
      if(!check) check=true;
      else{
        carry=0;
        for(int a=num.size()-1;a>=0;a--) sum+=((num[a]-'0')*pow(10,carry)) , carry++;
      }
    }
    cout<<sum<<'\n';
  }
}

不知道少考慮了什麼,求助  -.-

我本來跟你錯一樣的地方

後來在while(!ss.eof()){的下一行初始化num就過了

供參考

 
ZeroJudge Forum