| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1661 人关注过本帖, 1 人收藏
标题:c语言,如何队列排列
取消只看楼主 加入收藏
h2008
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-12-8
收藏(1)
 问题点数:0 回复次数:2 
c语言,如何队列排列
1 c语言,急!!!如何排列!!!  
 输入一个数 n.表示有n个数(n从1开始),再输入一个m,表示下面输入m组数,规定前一个数在后一数的前面,输出这列数  
如:4  
3  
1 2  
2 3  
4 3  
1 2 4 3
搜索更多相关主题的帖子: c语言 排列 
2008-12-08 14:56
h2008
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-12-8
收藏
得分:0 
对,是这么解释的!
2008-12-08 23:43
h2008
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-12-8
收藏
得分:0 
这是原题
有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。


输入:输入有若干组,每组中的第一行为二个数N(1<=N<=500),M;其中N表示队伍的个数,M表示接着有M行的输入数据。接下来的M行数据中,每行也有两个整数P1,P2表示即P1队赢了P2队。


输出:给出一个符合要求的排名。输出时队伍号之间有空格,最后一名后面没有空格。


其他说明:符合条件的排名可能不是唯一的,此时要求输出时编号小的队伍在前;输入数据保证是正确的,即输入数据确保一定能有一个符合要求的排名。
4 3

1 2

2 3

4 3
1 2 4 3

这是我的程序:#include<stdio.h>
int main(void)
{
    int n,m,i,j,fir,sen;
    int a[500]={1};
    while(2==scanf("%d%d",&n,&m))
    {
        for(i=1;i<n;i++)
            a[i]=a[i-1]+1;
     
        for(i=1;i<=m;i++)
        {
            scanf("%d%d",&fir,&sen);
            for(i=0;i<n;i++)
                if(a[i]==fir) break;
                for(j=0;j<n;j++)
                    if(a[j]==sen) break;
                    if(i>j)
                    {
                        int temp;
                        temp=a[i];
                        a[i]=a[j];
                        a[j]=temp;
                    }
        }
        for(i=0;i<n;i++)
        {
            printf("%d",a[i]);
            if(i!=n-1) putchar(' ');
        }
        printf("\n");
    }
    return 0;
}


我提交的时候说我超时啊?为什么啊?
2008-12-09 12:48
快速回复:c语言,如何队列排列
数据加载中...
 
   



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

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