标题:帮忙解决一下啊~~
只看楼主
z249250344
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-9-21
结帖率:0
已结贴  问题点数:20 回复次数:1 
帮忙解决一下啊~~
一个简单的程序 就是给是10个人的成绩排序 不知道出了什么毛病 运行不了  
#include<fstream>
using namespace std;

#define N 10

ifstream inf("in1.txt");
ofstream ouf("out1.txt");

struct stu
{
    char name[20];
    int score;
};

int main()
{
    int i,j,temp;
    stu a[10];
    for(i=0;i<N-1;i++)
    inf>>a[i].name>>a[i].score;
    for(i=0;i<N-1;i++)
    for(j=i+1;j<N;j++)
       if(a[j].score>a[i].score)
       {temp=a[i].score;
        a[i].score=a[j].score;
        a[j].score=temp;}
        for(i=0;i<N;i++)
   ouf<<a[i].name<<" "<<a[i].score<<endl;
    }
请大家帮忙检查一下
2010-09-21 19:53
洪溪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:34
注 册:2010-9-7
得分:20 
你的第一个循环里的不应是N-1;而是N

我改成这样后可以运行了,你可以拿去参考一下:
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
#define N 3
struct stu
{
    char name[20];
    int score;
};

int main()
{
    int i,j,temp;
    stu a[N];

    for(i=0;i<N;i++)
    {
        cin>>a[i].name;
            cin>>a[i].score;
    }

    for(i=0;i<N-1;i++)
        for(j=i+1;j<N;j++)
            if(a[j].score>a[i].score)
            {
                temp=a[i].score;
                a[i].score=a[j].score;
                a[j].score=temp;
            }
        for(i=0;i<N;i++)
        {
            cout<<a[i].name<<" "<<a[i].score<<endl;
        }
        return 0;
    }


注意第一个和最后一个循环体要加大括号:
2010-09-21 22:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-321078-1-1.html




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

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