| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 779 人关注过本帖
标题:一个程序,acm总是提交不了
只看楼主 加入收藏
小花之清
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2013-3-27
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:8 
一个程序,acm总是提交不了
我们将问题进行简化,大学一年级至四年级的信息依次用0、1、2、3表示,硕士研究生一年级至三年级的信息依次用4、5、6表示,给定参赛团体的年级信息,请你输出更新后的年级信息,如果选手已毕业,则无需输出。这里我们规定,参赛团体每位选手都正常升级或毕业,原来大学四年级或硕士研究生三年级的选手一律认为已毕业了。


Input

输入包括多个测试用例,首先给出测试用例数N,接着给出N个测试用例,每一个测试用例包括1行,首先给出参赛团体总数M,再依次给出M个参赛团体的年级信息,1≤N≤1000,1≤M≤1000。

Output

输出包括多行,对于每个测试用例输出一行,依次输出更新后的年级信息,如果选手已毕业,则无需输出。

Sample Input

2
5 1 2 4 5 6
4 0 0 6 6

Sample Output

2 3 5 6
1 1
程序代码:
#include
#define MAX 1000
int main()
{int a[MAX];int n,m,i;
scanf("%d",&n);
while(n)
{  scanf("%d",&m);
   for(i=0;i
搜索更多相关主题的帖子: 研究生 大学 硕士 信息 
2013-05-11 21:41
Ryker
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:145
专家分:420
注 册:2013-2-19
收藏
得分:0 
你代码也没帖完啊
照着你的意思写了一个...不知道对不对..
不过至少和样例一样的输出......

程序代码:
#include <stdio.h>
#define MAX 1000

int main(void)
{
    unsigned int info[MAX];
    unsigned int i, group, count, team, temp;

    scanf("%u", &group);            /*读取测试用例数*/

    while(group--)    /*计数器*/
    {
        count = 0;
        scanf("%u", &team);         /*读取参赛团体总数*/
        for(i = 0; i < team; i++)
        {
            scanf("%u", &temp);             /*读取年级信息*/
            if((temp > 3 && temp + 1 <= 6) || (temp + 1 <= 3))   /*大于3为研究生,加1大于6视为毕业*/
            {                                                    /*小于等于3为本科,加1大于3视为毕业*/
                info[i] = temp + 1;
                count++;                    /*计数器*/
            }
        }
        for(i = 0; i < count; i++)          /*输出结果*/
            printf("%u ", info[i]);

        if(group)           /*如果继续循环,换行*/
            putchar('\n');
    }

    return 0;
}


[ 本帖最后由 Ryker 于 2013-5-11 22:48 编辑 ]
2013-05-11 22:42
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:0 
可以试着去百度下结果!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-05-12 08:14
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
题目描述只发了一半,靠猜测,大概是说头一年一票人参赛,到第二年他们继续参赛,需要更新一下他们的年级信息吧。

楼上的代码结尾有一个多余的空格。这个问题简单地顺序处理一下就可以了,不需要用数据缓存数据。尝试提交一下下面的代码。

程序代码:
#include<stdio.h>
int main()
{
    int n, t, a, f;
    for(scanf("%d", &n); n--; puts(""))
    for(scanf("%d", &t), f = 0; t--;)
    {
        scanf("%d", &a);
        a++;
        if(a == 4 || a == 7) continue;
        if(f) putchar(' ');
        printf("%d", a);
        f = 1;
    }
    return 0;
}

重剑无锋,大巧不工
2013-05-12 10:50
小花之清
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2013-3-27
收藏
得分:0 
回复 4楼 beyondyf
因最近流感来袭,大赛组委会根据选手建议,决定将赛事推迟到秋季。该项决定带来的问题是:参赛团体的年级信息需要更新,其中已毕业离校参赛团队的信息需要删除。

我们将问题进行简化,大学一年级至四年级的信息依次用0、1、2、3表示,硕士研究生一年级至三年级的信息依次用4、5、6表示,给定参赛团体的年级信息,请你输出更新后的年级信息,如果选手已毕业,则无需输出。这里我们规定,参赛团体每位选手都正常升级或毕业,原来大学四年级或硕士研究生三年级的选手一律认为已毕业了。
2013-05-12 14:34
小花之清
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2013-3-27
收藏
得分:0 
回复 楼主 小花之清
程序代码:
#include<stdio.h>
#define MAX 1000
int main()
{
int a[MAX];
int n,m;
int i=0;
scanf("%d",&n);
while(n)

{scanf("%d",&m);

 for(i=0;i<m;i++)
    {
scanf("%d",&a[i]);  
    }

for(i=0;i<m;i++)
  {
if(a[i]==3||a[i]==6)
a[i]=0;
else a[i]+=1;
  }
for(i=0;i<m;i++)
{if(a[i]!=0)
printf("%d ",a[i]);

}
printf("\n");
n--;
}
return 0;
}
2013-05-12 14:40
小花之清
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2013-3-27
收藏
得分:0 
回复 2楼 Ryker
不好意思啊,昨天粘贴疏忽了,下面6楼给出来了。
2013-05-12 14:42
yyqd2013
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:35
专家分:154
注 册:2013-5-8
收藏
得分:0 
不好意思,内存不够。。。
程序代码:
#include <stdio.h>
#include <stdlib.h>
#define MAX 1000

int
main()
{
    int a[100][MAX];
    int n,m;
    int i=0,j;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&m);
        for(j=0;j<m;j++)
        {
            scanf("%d",&a[i][j]);  
        }
    }

    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            if(a[i][j]==3||a[i][j]==6)
                a[i][j]=0;
            else
            {
                a[i][j]+=1;
                printf("%d ",a[i][j]);
            }
        }
        printf("\n");
    }

    exit(1);
}
2013-05-12 15:07
神奈创
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:67
专家分:191
注 册:2013-3-31
收藏
得分:10 
#include "stdio.h"
int main()
{
    int n;
    int m;
    int i,j;
    int array[1000];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&m);
        for(j=0;j<m;j++)
            scanf("%d",&array[j]);
        for(j=0;j<m;j++)
        {
            if((array[j]==3)||(array[j]==6))
            array[j]=0
            elss
                array[j]+=1;
        }
        for(j=0;j<m-1;j++)
        if(array[j]!=0)
            printf("%d ",array[j]);
        if(array[m-1]!=0)
        printf("%d\n",array[m-1]);
        else printf("\n");
    }
}
2013-05-13 20:39
快速回复:一个程序,acm总是提交不了
数据加载中...
 
   



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

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