这是刹车的一部分,zod1
zod2
zodA
是向量。在向量中,我存储了int
。不能告诉它为什么崩溃导致它没有错误
if(zod1[u]+zod2[y]==zodA[t] || (zod1[u]+zod2[y])%10==zodA[t])
问题:
1 if语句是否复杂
2我可以使用这样的向量来解决if语句中的数学问题(抱歉能解释得更好)
3如果2问题属实,我应该如何解决呢
说明: 变量名用我自己的语言(抱歉,如果它看起来很奇怪) 所有值都为零(ex zod1 [u] = 0) 添加了整个函数(转到函数的变量被正确传递,我知道我使用了一些不必要的东西)
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)
编辑: 错误在这里:
for(i=0;i<zodisAts.size();i++)
{
zod2.push_back(0); // should be zodA
}
if语句是否复杂
不,我认为只用一个'或'就很简单了。但是,如果zodA[t]
始终小于10,那么您的if条件可以写为:
if ( (zod1[u]+zod2[y])%10==zodA[t] )
我可以使用这样的矢量来解决if语句中的数学问题(抱歉 无法解释更好)
是的,你可以。
如果2个问题属实,我应该如何解决呢
如果它编译然后崩溃,那么你可能正在访问越界索引。检查您的指数是否小于矢量大小。