首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

生手求教,写了个代码但是显示结果有些不对

2013-12-13 
新手求教,写了个代码但是显示结果有些不对!本帖最后由 u013121948 于 2013-12-11 22:06:29 编辑代码内容如

新手求教,写了个代码但是显示结果有些不对!
本帖最后由 u013121948 于 2013-12-11 22:06:29 编辑 代码内容如下:

#include <iostream>
#include <string>

using namespace std;

struct CandyBar 
{
string Brand;
double Weight;
int Heat;
void show();
};

CandyBar *ps(CandyBar);

int main()
{
CandyBar snack[3] = 
{
{"Mocha Munch", 2.3, 350},
{"大白兔", 3.5, 500},
{"德芙", 5.8, 750}
};
int num;
cout << "Please enter a number (0 or 1 or 2): ";
cin >> num;
cout << "The information of snack_" << num << " is: \n";
CandyBar *pd = ps(snack[num]);
(*pd).show();
delete pd;
return 0;
}

void CandyBar::show()
{
cout << "Brand: " << Brand << endl;
cout << "Weight: " << Weight << endl;
cout << "Heat: " << Heat << endl << endl;
}

CandyBar *ps(CandyBar n)
{
CandyBar *pn = new CandyBar;
pn[0].Brand += n.Brand; 
pn[1].Weight = n.Weight;
pn[2].Heat = n.Heat;
return pn;
}

[/code]
Brand的结果显示没问题,但是Weight和Heat 显示结果不对 是一串数字,请教下是哪里出问题了呢?
[解决办法]
ps函数中
CandyBar?*pd?=?ps(snack[num]);
CandyBar *ps(CandyBar n)
{
    CandyBar *pn = new CandyBar;
    pn[0].Brand += n.Brand; 
    pn[1].Weight = n.Weight;
    pn[2].Heat = n.Heat;
    return pn;
}
你只赋值了Brand, pn 的weight 和heat 都没赋值,未初始化,值不确定;
加一个构造函数吧 
[解决办法]
 pn[0].Brand += n.Brand; 
    pn[1].Weight = n.Weight;
    pn[2].Heat = n.Heat;
这里有问题吧,pn[0]的weight和Heat没赋值,pn[1]pn[2]的赋值也不对吧

热点排行