注册 登录
编程论坛 C++教室

C++ Primer Plus第五版 第四章编程习题 第9题 写的程序错误 新手求解~~

Hee麦 发布于 2012-11-20 13:51, 431 次点击
#include <iostream>

struct CandyBar {
    char brand[40];
    double weight;
    int calories;
};

int main()
{
   using namespace std;

    CandyBar *snack= new CandyBar[3];
    snack[0] = { "Mocha Munch", 2.3, 350 };
    snack[1] = { "shijin", 3.3, 450 };
    snack[2] = { "xu fuji", 4.3, 550 };

    cout << snack[0].brand <<"  "<< snack[0].weight <<"  "<< snack[0].calories << endl;
    cout << snack[1].brand <<"  "<< snack[1].weight <<"  "<< snack[1].calories << endl;
    cout << snack[2].brand <<"  "<< snack[2].weight <<"  "<< snack[2].calories << endl;
    delete [] snack;
    return 0;
}
要求用new来动态分配数组
9 回复
#2
天剑山2012-11-20 15:25
snack[0] = { "Mocha Munch", 2.3, 350 };
    snack[1] = { "shijin", 3.3, 450 };
    snack[2] = { "xu fuji", 4.3, 550 };

这个地方.....数组能这样复制吗?这样只有在定义是才可以,你只有一个一个赋值,对snack里每一个进行赋值
#3
Hee麦2012-11-20 16:17
只能一个一个赋值吗?
#4
mmmmmmmmmmmm2012-11-20 16:45
解决不了 帮顶  等待版主来解决
#5
寒风中的细雨2012-11-20 17:16
程序代码:
//main.cc
#include <iostream>

struct CandyBar {
     char brand[40];
     double weight;
     int calories;

 };

int main()

 {
   using namespace std;

    CandyBar *snack= new CandyBar[3]{
     { "Mocha Munch", 2.3, 350 },
     { "shijin", 3.3, 450 },
     { "xu fuji", 4.3, 550 }};

    cout << snack[0].brand <<"  "<< snack[0].weight <<"  "<< snack[0].calories << endl;
     cout << snack[1].brand <<"  "<< snack[1].weight <<"  "<< snack[1].calories << endl;
     cout << snack[2].brand <<"  "<< snack[2].weight <<"  "<< snack[2].calories << endl;
     delete [] snack;
     return 0;

 }

暴力一点
#6
寒风中的细雨2012-11-20 17:19
回复 4楼 mmmmmmmmmmmm
这个头像 看得头晕
#7
lz10919149992012-11-20 19:04
CandyBar *snack= new CandyBar[3];
strcpy(snack[0].brand, "Mocha Munch"); snack[0].weight = 2.3; snake[0].calories = 350;
strcpy(snack[1].brand, "shijin"); snack[1].weight = 3.3; snake[1].calories = 450;
strcpy(snack[2].brand, "xu fuji"); snack[2].weight = 4.3; snake[2].calories = 550;
#8
lz10919149992012-11-20 19:05
回复 5楼 寒风中的细雨
CandyBar *snack= new CandyBar[3]{
     { "Mocha Munch", 2.3, 350 },
     { "shijin", 3.3, 450 },
     { "xu fuji", 4.3, 550 }};

貌似这种语法编译不能通过吧?
#9
寒风中的细雨2012-11-20 20:06
回复 8楼 lz1091914999
$ g++ -w main.cc
一个警告 不让它报...
#10
Hee麦2012-11-20 21:25
感谢各位的帮助!
1