#5426: 麻煩看一下


popular10347 (ICPC// 哪時能唸到高等演算法T^T)

學校 : 元智大學
編號 : 11351
來源 : [1.169.118.99]
最後登入時間 :
2012-10-29 00:22:54
d392. 读取练习——强大的加法! -- liouzhou_101 | From: [61.216.11.181] | 發表日期 : 2011-07-26 11:37

不懂為什麼第一個程式碼不能過?

第二個卻可以...

在for迴圈納的判斷有什麼不同?

等到數字都讀完了加到sum不是都一樣?

<program 1>

#include<iostream>
using namespace std;

int main()
{
 char str[100001];

 while(gets(str))
 {
  unsigned long long int sum=0;
  unsigned long long int temp=0;
  for(int i=0;str[i] != '\0';i++)
  {
   if((str[i]>'9' || str[i]<'0') && str[i-1]>='0' && str[i-1]<='9')
   {
    sum+=temp;
    temp=0;
   }

   else if(str[i]>='0' && str[i]<='9')
   {
    temp*=10;
    temp+=str[i]-'0';
   
   }
  }

  cout << sum << endl;
 }

 return 0;
}

 

<program 2>

#include<iostream>
using namespace std;

int main()
{
 char str[100001];

 while(gets(str))
 {
  unsigned long long int sum=0;
  unsigned long long int temp=0;
  for(int i=0;str[i] != '\0';i++)
  {
   if(str[i]>='0' && str[i]<='9')
   {
    temp*=10;
    temp+=str[i]-'0';
   
   }

   else
   {
    sum+=temp;
    temp=0;
   }

   
  }

  cout << sum << endl;
 }

 return 0;
}

 
ZeroJudge Forum