这是我写的:
#include <iostream>
using namespace std;
struct vetura{
char ngjyra[10];
char tipi[10];
};
int main(){
int i,j;
vetura v[4];
for(i=0;i<4;i++){
cout << "Ngjyra:"<<endl;
cin >> v[i].ngjyra;
cout << "tipi:"<<endl;
cin >> v[i].tipi;
}
j=0;
for(i=0;i<4;i++){
if(v[i].ngjyra == "kuqe" && v[i].tipi == "passat")
j+1;
}
cout<<"kemi "<<j<<" vetura passat me ngjyre te kuqe";
cin.get();cin.get();
return 0;
}
我需要计算我为v [i] .ngjyra写了“kuqe”的次数和v [i] .tipi的“passat”。我认为变量j每次都会变大,但它不起作用,我将在接下来的几个小时进行考试,有人可以帮助我吗?
答案 0 :(得分:8)
你有两个问题:
<强>首先强>
变化:
j+1;
为:
j = j+1;
或更简单:
j++;
<强>第二强>
v[i].ngjyra == "kuqe"
永远不会成真。您正在检查v[i].ngjyra
的位置是否与"kuqe"
的位置相同。事实并非如此。
如果要测试字符串是否具有相同的值,请更改:
v[i].ngjyra == "kuqe"
为:
strcmp( v[i].ngjyra, "kuqe" ) == 0