VS测试显示正确,牛客网显示运行错误?
#include<iostream>
#include<string>
using namespace std;
int main(){
string a;
int i,n,s,sum=0,t=1;
while(cin>>a){
n=a.size();
if(n<3)
{cout<<"error"<<endl;}
for(i=1;i<n-1;i++)
{
switch(a[n-i])
{
case('0'):s=0*t;break;
case('1'):s=1*t;break;
case('2'):s=2*t;break;
case('3'):s=3*t;break;
case('4'):s=4*t;break;
case('5'):s=5*t;break;
case('6'):s=6*t;break;
case('7'):s=7*t;break;
case('8'):s=8*t;break;
case('9'):s=9*t;break;
case('A'):s=10*t;break;
case('B'):s=11*t;break;
case('C'):s=12*t;break;
case('D'):s=13*t;break;
case('E'):s=14*t;break;
case('F'):s=15*t;break;
default:cout<<"error"<<endl;
}
sum=sum+s;
t=t*16;
}
cout<<sum<<endl;
}
return 0;
}
#测试##include<string>
using namespace std;
int main(){
string a;
int i,n,s,sum=0,t=1;
while(cin>>a){
n=a.size();
if(n<3)
{cout<<"error"<<endl;}
for(i=1;i<n-1;i++)
{
switch(a[n-i])
{
case('0'):s=0*t;break;
case('1'):s=1*t;break;
case('2'):s=2*t;break;
case('3'):s=3*t;break;
case('4'):s=4*t;break;
case('5'):s=5*t;break;
case('6'):s=6*t;break;
case('7'):s=7*t;break;
case('8'):s=8*t;break;
case('9'):s=9*t;break;
case('A'):s=10*t;break;
case('B'):s=11*t;break;
case('C'):s=12*t;break;
case('D'):s=13*t;break;
case('E'):s=14*t;break;
case('F'):s=15*t;break;
default:cout<<"error"<<endl;
}
sum=sum+s;
t=t*16;
}
cout<<sum<<endl;
}
return 0;
}