不懂為什麼第一個程式碼不能過?
第二個卻可以...
在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;
}