gpt4 book ai didi

c++ - bool 函数问题 - 总是返回 true?

转载 作者:太空宇宙 更新时间:2023-11-04 14:51:36 24 4
gpt4 key购买 nike

#include <iostream>
#include <string>
#include <algorithm>
#include <cstdlib>
#include <cstdio>

using namespace std;

static bool isanagram(string a, string b);

int main(void)
{
int i,n,j,s;
cin >> n;
string a, b;
cin >> a >> b;
if(!isanagram(a,b)) cout << "False" << endl;
else cout << "True" << endl;
return 0;


}

static bool isanagram(string a, string b)
{
int i, j, size, s=0;
size = a.size();
bool k;
for(i=0;i<size;i++)
{
k=false;
for(j=0;j<size;j++)
{
if(a[i] == b[j]) { k = true; break; }
}
if(k==true) s+=1;
}
cout << a[2] << b[2] << endl;
if(s == size) return true;
else return false;

}

我不知道问题到底出在哪里,所以我只是粘贴了整个代码。

它应该是一个简单的程序,能够判断两个字符串是否是变位词,但它不起作用,我也不知道为什么。我在程序中使用了指针,所以认为这可能是问题并删除了它们,我另外删除了其他东西但仍然无法正常工作。如果您能看一看并告诉我我的代码哪里可能出错了?

提前谢谢你。

最佳答案

您的 isanagram 函数的逻辑存在致命缺陷 - 即使您设法修复其中的错误,它也永远无法正常工作。

在开始编码之前,您需要确保拥有正确的算法。一种简单的算法可能是:

  • 排序
  • 排序b
  • isanagram = (a == b)

关于c++ - bool 函数问题 - 总是返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2230338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com