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

求大家帮帮忙看下这个程序

红糖水 发布于 2013-05-08 14:09, 384 次点击
请问这个程序为什么会访问非法内存呢?
#include<iostream>
#include<string>
using namespace std;
class book
{
    public:
    string name;
    int money;
    int id;
};
int main()
{
    book s[4];
    int max,min,maxi,mini,temp,i;
    string person;
    cout<<"请输入4本书的信息"<<endl;
    cout<<"书名        价格"<<endl;
    for(i=0;i<4;i++)
    {
        cin>>s[i].name>>s[i].money;
        s[i].id=i;
    }
    cout<<endl<<endl;
    cout<<"所有数目信息:"<<endl;
    for(i=0;i<4;i++)
    {
        cout<<s[i].id<<"    《"<<s[i].name<<"》    "<<s[i].money<<endl;
    }
    max=s[0].money;
    min=s[3].money;
    for(i=0;i<4;i++)
    {
        if(s[i].money>max)
        {
            max=s[i].money;
            maxi=i;
        }
    }
        for(i=0;i<4;i++)
    {
        if(s[i].money<min)
        {
            min=s[i].money;
            mini=i;
        }
    }
    cout<<"最贵的书是----    书名:《"<<s[maxi].name<<"》  价格:"<<max<<endl;
    cout<<"最便宜的书是--    书名:《"<<s[mini].name<<"》  价格:"<<min<<endl;
    cout<<endl<<endl;
    cout<<"请输入编辑姓名"<<endl;
    cin>>person;
    cout<<"请输入让编辑修改价格的数目编号"<<endl;
    cin>>temp;
    cout<<"请输入 《"<<s[temp].name<<"》 的新价格"<<endl;
    cin>>s[temp].money;
    cout<<"编辑 "<<person<<" 将 《"<<s[temp].name<<"》的价格已经更改为:"<<s[temp].money<<endl;
    return 0;
}
3 回复
#2
笑傲2013-05-08 14:36
为什么我运行没遇到问题呢!应该没错误啊
#3
Pirelo2013-05-08 15:10
什么输入导致的问题?程序貌似没啥问题,但功能明显不全,person用来干啥的?
#4
红糖水2013-05-08 17:03
问题已解决。。。谢谢大家的支持
1