2014-05-20 89 views
-1

這是剎車的部分,zod1zodA是向量。在向量中,我存儲int。不能告訴爲什麼它崩潰導致它沒有給出錯誤如果陳述過於複雜?

if(zod1[u]+zod2[y]==zodA[t] || (zod1[u]+zod2[y])%10==zodA[t]) 

問題:
1,如果是在複雜
2我可以使用這樣的載體在if語句解決數學(抱歉,不能更好地解釋)語句
3如果2的問題是真的,我應該如何解決呢

說明: 變量名是在我自己的語言(抱歉,如果它看起來怪異) 數值爲全零(當然zod1 [U] = 0) 增加了整個功能(變量goin克至函數正確傳遞,我知道我用了一些不必要的東西)

void calc(vector<char> zodis1, vector<char> zodis2, vector<char> zodisAts,int zo1,int zo2,int zoA) 
{int i,keliamas=0; 
int k =0; 
    vector<int> zod1(0); 
    vector<int> zod2(0); 
    vector<int> zodA(0); 
    for(i=0;i<zodis1.size();i++) 
    { 
     zod1.push_back(0); 
    } 
     for(i=0;i<zodis2.size();i++) 
    { 
     zod2.push_back(0); 
    } 
     for(i=0;i<zodisAts.size();i++) 
    { 
     zod2.push_back(0); 
    } 
int u=zodis1.size()-1; 
int y=zodis2.size()-1; 
int t=zodisAts.size()-1; 

    if(zod1[u]+zod2[y]==zodA[t] || (zod1[u]+zod2[y])%10==zodA[t]) 
    {//if((zod1[u]+zod2[y])/10==1) 
    { 
     keliamas=1; 
    } 
    if(u==0||y==0||t!=0) 
     { 
     if(keliamas==1) 
     { 


     } 
     } 
     u--; 
     y--; 
     t--; 

    } 
    else 
    {if(zod1[u]!=9) 
     zod1[u]=zod1[u]+1; 
    else 
    { if(u!=zodis1.size()-1) 
     u++; 
     else 
     { 
      cout<<"something wrong man"; 
     } 
    } 

    } 
} 
+0

1.基於意見。對我來說不是,對於很多其他人來說可能是。 2.和3.你是什麼意思?在數學中,你是否只用條件解決任何事情?我非常懷疑它。這就像問問題「我可以通過詢問來解決任何問題嗎?」如果k甚至<?「 – luk32

+0

變量崩潰時的值是什麼?什麼是堆棧跟蹤? –

+0

第一季度可以挽救:「是否有一個相對簡單的表達式?」。 – MSalters

回答

1

編輯: 錯誤是在這裏:

for(i=0;i<zodisAts.size();i++) 
    { 
     zod2.push_back(0); // should be zodA 
    } 

是,如果過於複雜

聲明不,我認爲只用一個'或'就很簡單。但是,如果zodA[t]總是小於10,那麼你如果條件可以寫爲:

if ((zod1[u]+zod2[y])%10==zodA[t]) 

我可以使用這樣的載體在if語句解決數學(抱歉 無法解釋更好)

是的,你可以。

如果2的問題是真的,我應該如何解決呢

如果它編譯但隨後崩潰,那麼很可能你正在訪問越界指數。檢查你的指數是否小於矢量大小。

+0

謝謝你!菜鳥的錯誤:) – user3102621

+0

沒問題。很高興幫助。 –