| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1964 人关注过本帖
标题:“一帮一”题目格式错误问题,请教一下错误之处。
只看楼主 加入收藏
乌木
Rank: 1
等 级:新手上路
帖 子:9
专家分:7
注 册:2018-11-18
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:6 
“一帮一”题目格式错误问题,请教一下错误之处。
题目:输入格式:
输入第一行给出正偶数N(≤50),即全班学生的人数。此后N行,按照名次从高到低的顺序给出每个学生的性别(0代表女生,1代表男生)和姓名(不超过8个英文字母的非空字符串),其间以1个空格分隔。这里保证本班男女比例是1:1,并且没有并列名次。
输出格式:
每行输出一组两个学生的姓名,其间以1个空格分隔。名次高的学生在前,名次低的学生在后。小组的输出顺序按照前面学生的名次从高到低排列。
输入样例:
8
0 Amy
1 Tom
1 Bill
0 Cindy
0 Maya
1 John
1 Jack
0 Linda
输出样例:
Amy Jack
Tom Linda
Bill Maya
Cindy John

以下是我的代码:

#include <bits/stdc++.h>
using namespace std;
int main(void){
    int n;
    int i, j;
    int sex[50];
    char name[50][20];
    int num[50]={0};
cin>>n;
cout<<endl;
if(n<0||n>50)
        exit(0);
for(i=0;i<n;i++){
        cin>>sex[i];
        cout<<" ";
        cin>>name[i];
        cout<<endl;
    }
for(i=0;i<n;i++){     
    for(j=n-1;j>=0;j--)
        {
            if(num[i]==0&&num[j]==0&&sex[i]!=sex[j])
            {
                cout<<name[i]<<" "<<name[j]<<endl;
                num[i]=1;
                num[j]=1;
            }
        }
    }
return 0;
}
编译器始终反馈为格式错误,请问为何?
搜索更多相关主题的帖子: 格式 错误 学生 int num 
2018-12-03 10:52
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
连题目都贴不全?
网上搜了一下,缺少“将名次最靠前的学生与名次最靠后的异性学生分为一组。

编译器始终反馈为格式错误
听不懂,有什么错误你不贴出来吗?

程序代码:
#include <iostream>
using namespace std;

int main( void )
{
    size_t n;
    unsigned sex[50];
    char name[50][9];

    cin >> n;
    for( size_t i=0; i!=n; ++i )
        cin >> sex[i] >> name[i];

    for( size_t i=0; i!=n/2; ++i )
    {
        size_t j;
        for( j=n-1; sex[j]!=1-sex[i]; --j );
        sex[j] = 2;

        cout << name[i] << ' ' << name[j] << '\n';
    }
}

2018-12-03 12:41
乌木
Rank: 1
等 级:新手上路
帖 子:9
专家分:7
注 册:2018-11-18
收藏
得分:0 
回复 2楼 rjsp
图片附件: 游客没有浏览图片的权限,请 登录注册

就是这样的格式错误
2018-12-03 16:14
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:10 
回复 3楼 乌木
你应该说明是某某Online网说你的代码输出格式错误

我执行你的代码,并输入题目中的测试用例,你的输出是
<空行>
<空格>
<空格>
<空格>
<空格>
<空格>
<空格>
<空格>
<空格>
Amy Jack
Tom Linda
Bill Maya
Cindy John
而样例输出是
Amy Jack
Tom Linda
Bill Maya
Cindy John
能看出不一样么?



[此贴子已经被作者于2018-12-4 08:30编辑过]

2018-12-04 08:28
乌木
Rank: 1
等 级:新手上路
帖 子:9
专家分:7
注 册:2018-11-18
收藏
得分:0 
回复 4楼 rjsp
那请问为什么name要用二维数组呢?为什么我改成name[50][8]就不对了呢?PIA网站上编译器认为是部分正确,但是我在Dev上运行出来的结果是正确的啊……
图片附件: 游客没有浏览图片的权限,请 登录注册
2018-12-05 09:43
乌木
Rank: 1
等 级:新手上路
帖 子:9
专家分:7
注 册:2018-11-18
收藏
得分:0 
回复 4楼 rjsp
而当我使用一维数组时,答案就完全错误了,请问为什么呢?
图片附件: 游客没有浏览图片的权限,请 登录注册
2018-12-05 09:44
乌木
Rank: 1
等 级:新手上路
帖 子:9
专家分:7
注 册:2018-11-18
收藏
得分:0 
回复 4楼 rjsp
修改了一下,删去了输入中的换行符:
#include <bits/stdc++.h>
using namespace std;
int main(void){
    int n;
    int i, j;
    int sex[50];
  char name[50][20];
    int num[50]={0};
cin>>n;
if(n<0||n>50)
        exit(0);
for(i=0;i<n;i++){
        cin>>sex[i]>>name[i];
    }
for(i=0;i<n;i++){     
    for(j=n-1;j>=0;j--)
        {
            if(num[i]==0&&num[j]==0&&sex[i]!=sex[j])
            {
                cout<<name[i]<<" "<<name[j]<<endl;
                num[i]=1;
                num[j]=1;
            }
        }
    }
return 0;
}
现在对了。。。。但是感觉对的有点摸不着头脑。。。就是也不清楚为什么就对了。。。我在Dev上运行的结果是一样的啊。。。。。。。
图片附件: 游客没有浏览图片的权限,请 登录注册
2018-12-05 09:57
快速回复:“一帮一”题目格式错误问题,请教一下错误之处。
数据加载中...
 
   



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

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