日常错误

第二届南晓程序设计竞赛新年赛-外网dalao狂欢

    个人总结

问题 A: 集训队日常之JBB的烦恼

时间限制: 1 Sec   内存限制: 32 MB
提交: 402   解决: 235

题目描述

JBB一直有个大大的烦恼。她总是认为自己的才能适合行政工作,不适合写代码,不敢考卓工班。但是又怕跟BigBaiZhou说了以后会收到鄙视*999.
其实BigBaiZhou什么都知道。为了给JBB增强自信,给她出了一道简单题。做出来这道题后,JBB顺利考上卓工班。
所谓乱世出英雄。在BigBaiZhou住院的时候,以JBB为首的一票人成功的完成了JSCPC的筹备工作,还创造历史拿了银。
多么正能量的故事。
所以请你也来做做这道简单题
我们把只有0和1组成的字符串叫做比特字符串。如果比特字符串中1的个数为奇数,则称这个比特字符串是奇性的。如果比特字符串中1的个数为偶数,则称这个比特字符串是偶性的。
注意:
(1)0是偶数,所以不包含1的比特字符串是偶性的。
(2)0的个数不影响比特字符串的奇偶性。

输入

输入包含多组测试数据。每组数据由1~31个0、1组成,最后跟一个小写字母e或o,e表示此比特字符串应为偶性,o表示此比特字符串应为奇性。
当输入#时,表示输入结束。

输出

每组输入对应一个输出,你应该将最后的字母替换成0或1,使得此比特字符串符合输入时确定的奇偶性。

样例输入

101e
010010o
1e
000e
110100101o
#

样例输出

1010
0100101
11
0000
1101001010
#include<stdio.h>
int main()
{
    char a[50];
    char c,b;
    int i,m=0,n,p;
    while(scanf(" %c",&a[0])!=EOF)
    {
        if(a[0]=='1')
            m++;
        else if(a[0]=='e'||a[0]=='o')
        {
            if(a[0]=='e')
                printf("0");
            else
                printf("1");
            continue;
        }
        if(a[0]=='#')
            break;
        for(p=1;p<=32;p++)
        {
            scanf("%c",&a[p]);
            if(a[p]=='1')
                m++;
            if(a[p]=='o'||a[p]=='e')
                break;
        }
        if(m%2==0)
        {
            if(a[p]=='e')
                a[p]='0';
            else
                a[p]='1';
        }
        else
        {
            if(a[p]=='e')
                a[p]='1';
            else
                a[p]='0';
        }
        a[p+1]=0;
        puts(a);
        m=0;
    }
    return 0;
}

题目的思路很简单,但我在做此题时仍然修改了很多地方。
第一点:脑子不知道怎么想的,将题目中的字符串给拆成第一个字符和后面的字符两部分。所以将第一个字符送入缓冲区后使用的getchar打乱了整个输入,导致程序错误。
第二点:puts函数本身就会输出换行,我却又多写了一个putchar('\n'),导致格式不对。
平常做题的时候脑子转的快一些,不要因为这种事冷费时间。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值