微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在C++上比较两个数组上的元素

如何解决如何在C++上比较两个数组上的元素

一个 c ++ 问题,我必须确定用户是否击中了目标。输入敌人可能所在的坐标后,用户然后输入更多坐标,我必须比较它们,如果攻击的元素 [i] 与敌人 [n] 的任何元素匹配,则打印 YES。我知道我在比较位置而不是元素,这就是为什么它不起作用但我迷路了。我也尝试通过只制作一个数组来解决它,但这样感觉更好。

    #include <iostream>
    using namespace std;

    int main()
    {
    int n,k,b;
    int enemies[];
    int attacks[];
    
    cin>>n;
    for (int i=0; i<n; i++) {
        cin>>b;
        enemies[i]=b;
    }
    
    cin>>k; 
    for (int i=0; i<k; i++) {
        cin>>b;
        atacks[i]=b;
    }
    
    for(int i=0; i<k; i++){
       if(atacks[i]==enemies[i]){
                cout<<"YES"<<endl;
       }
       else{
           cout<<"NO"<<endl;
       }
    
    return 0;
}

解决方法

您的代码可能不起作用,因为这一行:

if(atacks[i]==enemies[i])

要求匹配的 attackenemy 在它们的数组中应该有相同的索引。

正如评论中所建议的,您需要为 EACH enemies 迭代 ALL attack,即“O(n*k) 解决方案”

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。