| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:怎么算是输入结束,C++怎么写?In Reply To:怎么算是输入结束,C++怎么写? Posted by:Scidets at 2011-09-05 19:35:39 > RET
还有,Runtime Error会是什么原因?请大牛们指教,下面是我的代码
#include <iostream>
using namespace std;
class Interpreter
{
public:
int *store;
int reg[10]; //寄存器
int d,n;
int op;
int step;
public:
void init(){
store = new int[1000];
}
void del(){
delete(store);
}
int cal(int op,int d,int n)
{
int flag=-1;
switch (op)
{
case 2:
{
reg[d]=n;
}
;
break;
case 3:
{
reg[d] = (reg[d]+n)%1000;
}
;
break;
case 4:
{
reg[d] = (reg[d]*n)%1000;
}
;
break;
case 5:
{
reg[d]=reg[n];
}
;
break;
case 6:
{
reg[d]= (reg[d]+reg[n])%1000;
}
;
break;
case 7:
{
reg[d]= (reg[d]*reg[n])%1000;
}
;
break;
case 8:
{
reg[d]=store[n];
}
;
break;
case 9:
{
store[n] = reg[d];
}
;
break;
case 0:
{
if (reg[n]!=0)
{
flag=reg[d]-1;
}
}
;
break;
default:
//cout<<"error input"<<endl;
break;
}
return flag;
}
};
int main()
{
Interpreter ip;
int j;
int ret, flag;
int d, n, op;
ip.init();
flag = 0;
j=0;
while(cin>>ip.store[j])
j++;
for(j=0;j<10;j++)ip.reg[j]=0;
j=0;
ip.step = 1;
while(ip.store[j]!=100)
{
ip.step++;
op = ip.store[j]/100;
d = ip.store[j]%100/10;
n = ip.store[j]%10;
ret=ip.cal(op,d,n);
if (ret!=-1)
{
j = ret;
}
j++;
}
cout<<ip.step<<endl;
ip.del();
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator