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

请论坛中的大侠 帮忙该下这程序 谢谢 。。。

hujian1989 发布于 2011-10-22 20:57, 414 次点击
输入N个学生的信息(学号 姓名 成绩),然后将成绩又大到小排序,并输出学生信息
我写的程序如下   但是还有问题
#include<iostream>
#include<conio.h>
#include<string>
#define N 5
using namespace std;
int main()
{
    struct
    {
        int num;
        char name[20];
        float score;
    }stu[N];
    int i,j,m;
    float t;
    char *a[20];
    cout<<"请输入"<<N<<"个学生的学号 姓名 成绩"<<endl;
    for(i=0;i<N;i++)
        cin>>stu[i].num>>stu[i].name>>stu[i].score;
    for(i=0;i<N;i++)
        for(j=0;j<N-1;j++)
            if(stu[j].score<stu[j+1].score)
            {
                t=stu[j+1].score;
                stu[j+1].score=stu[j].score;
                stu[j].score=t;
                m=stu[j+1].num;
                stu[j+1].num=stu[j].num;
                stu[j].num=m;
                strcpy(*a,stu[j+1].name);
                strcpy(stu[j+1].name,stu[j].name);
                strcpy(stu[j].name,*a);
            }
            cout<<"xuehao name scoren"<<endl;
            for(i=0;i<N;i++)
                cout<<stu[i].num<<" "<<stu[i].name<<" "<<stu[i].score<<endl;
            _getch();
            return 0;
}

2 回复
#2
nomify2011-10-23 01:40
把 *a 全部改为 a
#3
hujian19892011-10-23 14:57
谢谢 。。。。。
1