| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 507 人关注过本帖
标题:模拟打字 Typing
只看楼主 加入收藏
liucs116
Rank: 2
等 级:论坛游民
帖 子:130
专家分:29
注 册:2009-11-4
结帖率:92.86%
收藏
已结贴  问题点数:5 回复次数:2 
模拟打字 Typing
http://acm.hdu.
程序代码:
#include<stdio.h>
#define size 20
int main()
{
    int n,m,i,k,flag;
    char a[size],b[size],c[size];
    scanf("%d",&m);
    while(m--)
    {
        scanf("%d",&n);
        flag=k=0;
        for(i=0;i<n;i++)
        {
            scanf("%s",a);
            if(a[0]=='S')
            {
                scanf("%s",b);
                if(flag%2==0)
                    c[k++]=b[0]-32;
                else if(flag%2==1)
                    c[k++]=b[0];
            }
            else if(a[0]=='C')
            {
                flag++;
                continue;
            }
            else
            {
                if(flag%2==1)
                    c[k++]=a[0]-32;
                else if(flag%2==0)
                    c[k++]=a[0];
            }
        }
        c[k]='\0';
        printf("%s\n",c);
    }
    return 0;
}
改了很久,还是WA谁能帮忙看下哪里没考虑到!!
搜索更多相关主题的帖子: 打字 Typing 模拟 
2010-04-04 13:27
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:3 
程序代码:
#include<iostream>
#include<string>
#include<ctype.h>
#include<cstdio>
using namespace std;
class Case
{
public:
    Case(int n=0);
    ~Case(){}
    void cal();
    void show(char word);
private:
    bool caps;
    bool shift;
    size_t nmLines;
};
Case::Case(int n):caps(false),shift(false)
{
    nmLines=n;
}
void Case::show(char word)
{
    if( (caps && ! shift) || (!caps && shift))
        printf("%c",toupper(word));
    else
        printf("%c",tolower(word));
}
void Case::cal()
{
    string line;
    while(nmLines--)
    {
        cin>>line;
        if( line == "Caps")
            caps=(caps==true)?false:true;
        else if( line == "Shift")
        {
            shift=true;
            char c;
            cin>>c;
            show(c);
            shift=false;
        }
        else
            show(line.c_str()[0]);
    }
}
int main()
{
    int count;
    cin>>count;
    while(count--)
    {
        int n;
        cin>>n;
        Case ca(n);
        ca.cal();
        cout<<endl;
    }
    return 0;
}


ac!!

2292223    2010-04-04 14:34:08    Accepted    2573    15MS    380K    1086 B    G++    wxjeacen
2010-04-04 14:35
liucs116
Rank: 2
等 级:论坛游民
帖 子:130
专家分:29
注 册:2009-11-4
收藏
得分:0 
C++还没学,看的不是很明白,最好帮我看看我的思路有没有问题?谢谢!!!

学无止境!
2010-04-04 14:47
快速回复:模拟打字 Typing
数据加载中...
 
   



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

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