| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1747 人关注过本帖
标题:C++ Primer Plus(第五版)第四章编程练习题9 求助
取消只看楼主 加入收藏
sam031
Rank: 2
等 级:论坛游民
帖 子:12
专家分:14
注 册:2013-2-23
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:1 
C++ Primer Plus(第五版)第四章编程练习题9 求助
第五题:结构CandyBar 包含3个成员.第一个成员存储了糖块的品牌,第二个成员存储糖块的重量(可以有小数);第三个成员存储了糖块的卡路里,含量(整数).请编写一个程序,声明这个结构,创建一个名为snack的CandyBar变量,并将基成员分别初始化为"Mocha Munch"2.3和350.化应在声明snack时进行.最后,程序显示snack变量的内容.

第六题:结构CandyBar包含3个成员,如编程练习5所示.请编写一个程序,创建一个程序,创建一个饱含3个元素的CandyBar数组,并将它们初始化为所选择的值,然后显示每个结构的内容.

第九题:完成编程练习6,但使用new来动态分配数组,而不是声明一个包含3个元素的CandyBar数组.

做第九题作业时,这里小弟理解 不是声明一个包含3个元素的CandyBar数组 应为声明包含未知个元素的CandyBar数组,于是写了如下代码,编译通过,但输入bra数组后就立刻出现遗传乱码数字,小弟菜鸟也,不懂,求助高手们,帮忙改一下代码并说明一下,先谢过!

#include <iostream>
#include <cstring>
using namespace std;
struct CandyBar
{
        char brand[30];
        float weight;
        int colorie;
};
void main()
{
    cout<<"请输入正整数:";
    int x;
    cin>>x;
    CandyBar* p=new CandyBar[x];
    char bra[30];
    for(int i=0;i<x;i++)
    {
        cin.getline(bra,30);
        strncpy(p[i].brand,bra,29);
        p[i].brand[29]='\0';
        cin>>p[i].weight;
        cin>>p[i].colorie;
        cout<<p[i].brand<<endl;
        cout<<p[i].weight<<endl;
        cout<<p[i].colorie<<endl;
    }
    delete [] p;

}



搜索更多相关主题的帖子: 练习题 卡路里 动态 
2013-02-23 23:12
sam031
Rank: 2
等 级:论坛游民
帖 子:12
专家分:14
注 册:2013-2-23
收藏
得分:0 
感谢LS两位的知道  小弟终于明白了
感谢3L的回答,同时十分感谢4L指出了小弟代码中的问题,原来是cin作怪。呵呵,忘了cin是保留回车,还有void main()确实操蛋,不过就是为了偷懒不写return 0,而且大学中C++的课本极大多数时候(华南理工的课本啊)都是用void main(),嘻嘻,养成陋习了,请见谅,以后注意改正。
还有那个cin.get()吸收队列的回车需放在循环for 中,否则输入到i=1 以后还是出现 乱套现象。
总之,十分感谢论坛上的高手热心达人
以后小弟在论坛里一定多多学习!
2013-02-24 21:03
快速回复:C++ Primer Plus(第五版)第四章编程练习题9 求助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011793 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved