#3317: 各位大大幫忙看看


killer (招魂)

學校 : 臺北市立成功高級中學
編號 : 8794
來源 : [114.24.58.52]
最後登入時間 :
2010-08-21 22:14:53
d615. 計算機運算 -- 葆葆 | From: [114.36.31.81] | 發表日期 : 2010-01-23 22:50

#include <iostream>
using namespace std;
int main()
{
    int a,t;
    while(cin>>a)
    for(int i=0;i<a;i++)
    {
        string s;
        getline(cin,s);
        t=s[0]-48;
        for(int j=4;j<s.size();j+=4)
        {
            if(s[j-2]=='+')
            t=t+s[j]-32;
            if(s[j-2]=='-')
            t=t-s[j]+32;
            if(s[j-2]=='*')
            t=t*(s[j]-32);
            if(s[j-2]=='/')
            t=t/(s[j]-32);
        }
        cout<<t<<endl;
    }
           
       

   system("pause");
   return 0;
}

 

我覺得是string的問題

但不知問題出在哪

對string不熟啊= =

 
#9312: Re:各位大大幫忙看看


simultaneously (----------以上是高手------------)

學校 : 高雄市立新莊高級中學
編號 : 37268
來源 : [1.200.206.195]
最後登入時間 :
2018-12-01 11:50:33
d615. 計算機運算 -- 葆葆 | From: [111.254.220.237] | 發表日期 : 2014-10-12 16:49

#include
using namespace std;
int main()
{
    int a,t;
    while(cin>>a)
    for(int i=0;i    {
        string s;
        getline(cin,s);
        t=s[0]-48;
        for(int j=4;j        {
            if(s[j-2]=='+')
            t=t+s[j]-32;
            if(s[j-2]=='-')
            t=t-s[j]+32;
            if(s[j-2]=='*')
            t=t*(s[j]-32);
            if(s[j-2]=='/')
            t=t/(s[j]-32);
        }
        cout<    }
           
       

   system("pause");
   return 0;
}

 

我覺得是string的問題

但不知問題出在哪

對string不熟啊= =


大概有一個地方錯了-----每個運算元並不是只有一個數字

 

其他沒有什麼大問題 

我的程式碼如下:

#include<cstdio>

#include<cstring>

int pd(char x[],int s,int sc){

    int i,f=0;

   for(i=s;i<sc;i++)

    {

    if(x[i]>='0'&&x[i]<='9') f=f*10+x[i]-'0';

    else break;     

    }       

   return f; 

    }

int px(int x){

    int f=0;

   while(x){f++,x/=10;}

   return f; 

    }

int main(){

    int t;

    char x[1000000];

   while(~scanf("%d ",&t)){

    while(t--){ 

     gets(x);

     long long ans=0;

    int i=0,f;

    f=pd(x,0,strlen(x));

    ans+=f;

   i+=px(f)+1;

   for(;i<strlen(x);)

   {f=pd(x,i+2,strlen(x));

     if(x[i]=='+') ans+=f;

    else if(x[i]=='-')  ans-=f;

    else if(x[i]=='*') ans*=f;

    else if(x[i]=='/')   ans/=f;

     i+=px(f)+3;     

    }   

    printf("%lld\n",ans);

}}   }

 

 
ZeroJudge Forum