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

这段代码有问题吗,在编译的时候会出现崩溃的现象

langmanxiang 发布于 2016-04-05 08:54, 4673 次点击
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
struct donation
{
    string name;
    double money;
};

int main ()
{
    int n_of_donation=0;
    cout<<"输入捐款者的数目:\n";
    cin>>n_of_donation;

    donation *list=new donation[n_of_donation];

    for(int i=0;i<n_of_donation;i++)
    {
        cout<<"输入第 "<<i+1<<" 位捐款者的信息:\n";
        cout<<"name:\n";
        cin>>list[i].name;
        cout<<"money:\n";
        cin>>list[i].money;
    }

    int temp=0;
    cout<<"重要捐款人:"<<endl;
    for(int m=0;m<n_of_donation;m++)
    {
        if(list[m].money>10000)
        {
            cout<<list[m].name<<"     "<<list[m].money<<endl;
            temp++;
        }
    }
    if(temp==0)
        cout<<"None.\n";

    temp=0;
    cout<<"捐款人: "<<endl;
    for(int o=0;o<n_of_donation;o++)
    {
        if(list[o].money<=10000)
        {
            cout<<list[o].name<<"     "<<list[o].money<<endl;
            temp++;
        }
    }
    if(temp==0)
        cout<<"None!\n";

    delete list;
    getchar();
    getchar();
    return 0;

}
3 回复
#2
wengbin2016-04-05 10:44
错误信息呢?我编译时提示getchar();不能用,我就用cin.get()代替了,之后没有问题
#3
醒山2016-04-05 12:22
我运行的没问题啊
#4
hjx11202016-04-05 19:00
程序代码:
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
struct donation
{
    string name;
    double money;
};

int main ()
{
    int n_of_donation=0;
    cout<<"输入捐款者的数目:\n";
    cin>>n_of_donation;

    donation *list=new donation[n_of_donation];

    for(int i=0;i<n_of_donation;i++)
    {
        cout<<"输入第 "<<i+1<<" 位捐款者的信息:\n";
        cout<<"name:\n";
        cin>>list[i].name;
        cout<<"money:\n";
        cin>>list[i].money;
    }

    int temp=0;
    cout<<"重要捐款人:"<<endl;
    for(int m=0;m<n_of_donation;m++)
    {
        if(list[m].money>10000)
        {
            cout<<list[m].name<<"     "<<list[m].money<<endl;
            temp++;
        }
    }
    if(temp==0)
        cout<<"None.\n";

    temp=0;
    cout<<"捐款人: "<<endl;
    for(int o=0;o<n_of_donation;o++)
    {
        if(list[o].money<=10000)
        {
            cout<<list[o].name<<"     "<<list[o].money<<endl;
            temp++;
        }
    }
    if(temp==0)
        cout<<"None!\n";

    delete []list;   //注意这行
    getchar();
    getchar();
    return 0;

}
1