当前位置: 首页 > 知识库问答 >
问题:

在C++代码中遇到编译错误的问题

轩辕欣可
2023-03-14

我发现编译错误。其实很管用。但我把这个代码提交给了网站进行分配。一个网站警告我,您有一个问题,说“不匹配'operator='(操作数类型是'product'和'')”我该如何解决这个错误呢?我应该在哪里修复代码?

#include <iostream>
using namespace std;

struct Product {
    char name[3][6];
    int price[3];
};

int main() {

    Product A, B, C;
    char ch;
    int sum = 0;
    int average;
    
    A = { "strawberry", "melon", "watermelon", 300, 500, 1000 };
    B = { "strawberry", "melon", "watermelon", 450, 450, 900 };
    C = { "strawberry", "melon", "watermelon", 200, 150, 700 };

    cin >> ch;

    if (ch == 'A') {
        for (int i = 0; i < 3; i++) {
            sum += A.price[i];
        }
    }
    else if (ch == 'B') {
        for (int i = 0; i < 3; i++) {
            sum += B.price[i];
        }
    }
    else {
        for (int i = 0; i < 3; i++) {
            sum += C.price[i];
        }
    }

    average = sum / 3;

    cout << average;

    return 0;
}

共有1个答案

司马耘豪
2023-03-14

结构的初始化无效。您必须在其声明时初始化。

  Product  A = { {"strawberry", "melon", "watermelon"}, {300, 500, 1000}};
  Product  B = { {"strawberry", "melon", "watermelon"}, {450, 450, 900 }};
  Product  C = { {"strawberry", "melon", "watermelon"}, {200, 150, 700 }};

并且应增加名称的列大小。
字符名称[3][6];更改为字符名称[3][20];

 类似资料:
  • 我试图使用从Centos6.2上的源代码构建。我将从4.6.6全局更新到5.2.0,因此这可能会导致一些问题。2.17位于本地目录中,但系统默认值的版本为2.12。 我得到以下错误: 错误:/usr/local/app/.cache/bazel/_bazel_mqq/51871D27DFE77EBCE0294C6560736A2C/external/jemalloc/build:10:1:C++规

  • 我正在尝试编译这里提到的桥接模式C示例代码 但是,当我使用g-o桥时,我会遇到编译错误。C 计划: 错误: ]#g-o桥桥。C桥。C: 在成员函数“virtual void TimeImp::tell()”中:Bridge。C: 14:错误:“运算符”不匹配 这是错误的一部分,它以相同的模式扩展。 我复制粘贴了相同的代码,分析了错误行,但无法得到它。 有人能告诉我我哪里错了吗?

  • 我正在尝试在最新的intellij(community edition)中使用Java9: IntelliJ IDEA 2016.3 Build#IC-163.7743.44,2016年11月17日构建jre:1.8.0_112-release-408-b2 x86 jvm:OpenJDK服务器VM由JetBrains S.r.o. 有人知道如何解决这个问题吗?还是我应该等到他们发布另一个版本?

  • 问题内容: 以下代码给出了编译器错误 有时出于测试目的,希望防止某个方法被调用,因此一种快速执行此方法(而不是在使用 该方法的位置处将其注释掉)的方法是立即从该方法返回,以便该方法不执行任何操作。然后,我总是做些什么来解决编译器错误,这是 我很好奇,为什么会出现编译器错误?它会以某种方式破坏Java字节码,是为了保护程序员还是其他? 同样(这对我来说更有趣),如果将Java编译为字节码可以进行任何

  • 编译过程中的错误有: 说明资源路径位置类型new AsyncHttpResponseHandler(){}类型的onSuccess(String)方法必须重写或实现超类型方法

  • 我最近在部署到我们的共享主机时遇到了问题。从 Visual Studio 通过 Web 部署进行部署时,99% 的时间我在登录后在登录页面或主页上收到此错误。有时我可能会点击几下不同的部分,然后它就会击中。它通常会在几分钟到90分钟后消失。 运行Windows Server 2012 R2 Standard、IIS8和.NET 4.5的Web主机。 Web主机建议我需要使用Visual Studi

  • 我有以下代码: 我希望它输出“0,1,2,3”并停止,但它输出的是一系列无穷无尽的“0、1、2、3、4、5……” 看起来比较< code>di 如果我只是注释掉< code >,delta=mc[di],我会正常得到“0,1,2,3”。无辜作业有什么问题? 我正在使用Ideone.com g14带-O2选项。

  • 代码不编译。我不明白错误是什么,请帮忙) 错误文本:g-Wall-c“main.cpp”(/media/ad/4GB-NTFS/prog/laba2)main。cpp:In函数“int main()”:main。cpp:46:12:错误:调用“Record::Record()”记录r1;^主要的cpp:12:1:注意:候选者:Record::Record(std::\u cxx11::string