Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2349757
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:07:53

你上面的shurn函数里用new创建了两个结构体变量后面又释放了,此时当调用bijiao函数时又创建两个变量又没有赋值就冒泡排序,我又点不知道是什么程序了,但感觉你的有点语法错误,对于变量应用“.”点来访问成员,对于指针应用“->”前头来访问。
这是我改的,还不知道合不合你的题意,至少编译通过(Dev-Cpp)!

#include
using namespace std;

struct sc {
    int sno;
    char sname[20];
    int grade1;
    int grade2;
    int grade3;
};

sc *s;              //全局指针

sc *shuru(int n){
    s=new sc[n];
    for(int i=0;i        cout<<"enter:";
        cin>>(s+i)->sno
           >>(s+i)->sname
           >>(s+i)->grade1
           >>(s+i)->grade2
           >>(s+i)->grade3;
    }
}                  //输入数据

void bijiao(int n){
    for(int l=0;l        for(int i=n-1;i>l;i--)
            if((s+i)->grade1<(s+i-1)->grade1){
                sc t;
                t=*(s+i);
                *(s+i)=*(s+i-1);
                *(s+i-1)=t;
            }
        }
        for(int j=0;j            cout<<(s+j)->sno
                <<(s+j)->sname
                <<(s+j)->grade1
                <<(s+j)->grade2
                <<(s+j)->grade3
                <            }  //按有小到大输出
}
   
int main(void){
    shuru(2);
    bijiao(2);
    delete []s;
    system("pause");
    return 0;
}

//(DNM)

--------------------next---------------------
#include
using namespace std;

struct sc {
    int sno;
    char sname[20];
    int grade1;
    int grade2;
    int grade3;
};

sc *s;              //全局指针

sc *shuru(int n){
    s=new sc[n];
    for(int i=0;i        cout<<"enter:";
        cin>>(s+i)->sno
           >>(s+i)->sname
           >>(s+i)->grade1
           >>(s+i)->grade2
           >>(s+i)->grade3;
    }
}                  //输入数据

void bijiao(int n){
    for(int l=0;l        for(int i=n-1;i>l;i--)
            if((s+i)->grade1<(s+i-1)->grade1){
                sc t;
                t=*(s+i);
                *(s+i)=*(s+i-1);
                *(s+i-1)=t;
            }
        }
        for(int j=0;j            cout<<(s+j)->sno<<'\t'
                <<(s+j)->sname<<'\t'
                <<(s+j)->grade1<<'\t'
                <<(s+j)->grade2<<'\t'
                <<(s+j)->grade3
                <            }  //按有小到大输出
}
   
int main(void){
    shuru(2);
    bijiao(2);
    delete []s;
    system("pause");
    return 0;
}

我对这个程序测试时,输入的是:1 XiaoHong 1 1 1
                              2 XiaoMing 2 2 2
输入时应该对应cin传入数据类型。
我用Dev-Cpp试过这个程序有输出!

--------------------next---------------------

阅读(1402) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~