| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 600 人关注过本帖
标题:求助:北大PKU1007 acm
取消只看楼主 加入收藏
樱花自在
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2012-12-29
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:4 
求助:北大PKU1007 acm
#include<stdio.h>
#include<string.h>
int main()
{
    char a[101][52];
    long c[51]={0};
    int m,n,i,j,s,b,k;
    scanf("%d%d",&m,&n);
    for(i=0;i<n;i++)
    {   
            scanf("%s",a[i]);
            a[i][m]='\0';
    }
    for(s=0;s<n;s++)
        for(i=0;i<m-1;i++)
            for(j=i+1;j<m;j++)
            {   
            if(a[s][i]>a[s][j])
                c[s]++;
            }
    for(i=0;i<n;i++)
    {
        b=c[0];
        s=0;
        if(c[0]==-1)
        {   
            k=1;
            while(c[k]==-1)
            {
                if(k==n) return 0;
                k++;
            }
            b=c[k];
            s=k;
        }
        for(j=0;j<n;j++)
        {   
            if(b >c[j] && c[j]!=-1)
            {
                b=c[j];
                s=j;
            }
        }
        c[s]=-1;
        //for(j=0;j<m;j++)
        //    printf("%c",a[s][j]);
printf("%s\n",a[i]);
   
    }                                            
return 0;
}

我自己测试了好几组数据,结果正确,可是平台上还是wrong answer。
实在研究不出来出错的原因 ,求各位帮帮忙。
谢谢!!
拜托各位了。
 
搜索更多相关主题的帖子: include 
2014-03-09 01:26
樱花自在
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2012-12-29
收藏
得分:0 
不好意思,是我的疏忽了
这道题是北大poj上的1007题,
题目链接在这里:http://
我现在又改了个错误,就是char型过小,会溢出,但还是wrong answer
我的算法确实不好,但是还是想知道错误的原因
求各位帮帮忙,谢谢!!!!
#include<stdio.h>
#include<string.h>
int main()
{
    char a[101][52];
    long c[51]={0};
    int m,n,i,j,s,b,k;
    scanf("%d%d",&m,&n);
    for(i=0;i<n;i++)
    {   
            scanf("%s",a[i]);
            a[i][m]='\0';
    }
    for(s=0;s<n;s++)
        for(i=0;i<m-1;i++)
            for(j=i+1;j<m;j++)
            {   
            if(a[s][i]>a[s][j])
                c[s]++;
            }
    for(i=0;i<n;i++)
    {
        b=c[0];
        s=0;
        if(c[0]==-1)
        {   
            k=1;
            while(c[k]==-1)
            {
                if(k==n) return 0;
                k++;
            }
            b=c[k];
            s=k;
        }
        for(j=0;j<n;j++)
        {   
            if(b >c[j] && c[j]!=-1)
            {
                b=c[j];
                s=j;
            }
        }
        c[s]=-1;
        //for(j=0;j<m;j++)
        //    printf("%c",a[s][j]);
printf("%s\n",a[i]);
   
    }                                            
return 0;
}

2014-03-09 23:11
樱花自在
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2012-12-29
收藏
得分:0 
不好意思啊,printf("%s\n",a[i]);改成printf("%s\n",a[s]);
不过为什么还不行呢 ?     
2014-03-10 00:08
樱花自在
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2012-12-29
收藏
得分:0 
我最新的代码,还是不行,求助啊

#include<stdio.h>
#include<string.h>
int main()
{
    char a[101][52];
    int c[51];
    int m,n,i,j,s,b,k;
    scanf("%d%d",&m,&n);
    for(i=0;i<n;i++)
    {   
            scanf("%s",a[i]);
            a[i][m]='\0';
    }
    for(s=0;s<n;s++)
    {
        c[s]=0;
        for(i=0;i<m-1;i++)
            for(j=i+1;j<m;j++)
            {   
            if(a[s][i]>a[s][j])
                c[s]++;
            }
    }
    for(i=0;i<n;i++)
    {
        b=c[0];
        s=0;
        if(c[0]==-1)
        {   
            k=1;
            while(c[k]==-1)
            {
                if(k==n) return 0;
                k++;
            }
            b=c[k];
            s=k;
        }
        for(j=0;j<n;j++)
        {   
            if(b >c[j] && c[j]!=-1)
            {
                b=c[j];
                s=j;
            }
        }
        c[s]=-1;
        //for(j=0;j<m;j++)
        //    printf("%c",a[s][j]);
        printf("%s\n",a[s]);
   
   
    }
return 0;
}



2014-03-10 00:28
樱花自在
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2012-12-29
收藏
得分:0 
谢谢各位了,我明白错在哪里了,
int c[51];要改成int c[101];
一直注意a[][],却忘了c[],太粗心了啊
非常谢谢各位的帮助!!!!


2014-03-10 21:02
快速回复:求助:北大PKU1007 acm
数据加载中...
 
   



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

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