错误在此行:if(strcmp(answer [i],ans [i])== 0) 抱歉,如果这是一个愚蠢的问题,我已经浏览了大多数旧帖子,但无法获得答案。
int main()
{
int score=0;
char answer[20]={'T','F','F','T','F','F','T','T','T','T','F','F','T','F','T','F','T','F','T','T'};
char ans[20]={'F','T','F','T','F','F','T','T','F','T','F','F','T','F','T','F','T','F','T','T'};
for(int i=0;i<20;i++)
{
if (strcmp(answer[i],ans[i]) == 0)
{
score++;
cout << "No. " << i+1 << " is correct!" << endl;
}
else
{
cout << "No. " << i+1 << "is false!" << endl;
}
}
cout << "Score: " << score << endl;
return 0;
}
答案 0 :(得分:2)
我使用char代替字符串,因此不需要strcmp。 只是
if (answer[i] == ans[i])
谢谢! @JohnnyMopp
答案 1 :(得分:0)
strcmp
的签名:
int strcmp ( const char * str1, const char * str2 );
它带有char*
个参数,旨在比较以null结尾的字符串。您传递了错误类型char
的参数。此外,违反了使用逻辑-如果两个字符串的内容相等,则strcmp
返回0,因此匹配检查!strcmp(str1, str2)
。比较两个字符就可以了
answer[i] == ans[i]