zoukankan      html  css  js  c++  java
  • UVA10361 Automatic Poetry

    没想到这样一个水题也把我憋了这么久,唉,方法很简单把因‘<’'>'号分开的几部分字符串分别放在不同的数组里,输出时,第一行忽略<>号输出,第二行先输出...前面的,后面的变换一下第一行的字符串顺序输出就可以了。

    困住我的地方:测试组数的输入问题,评测之后出现runtime error。

    while(gets(num) != NULL)
    {
    sscanf(num,"%d",&n);开始时我定义了char n;用while(gets(&n) != NULL);之后问了斌哥,知道了这样只能读一个字符,也就是测试组数只能是个位数。值得注意:

    #include<stdio.h>
    #include<string.h>
    #define MAXN 100+10
    int n;
    char s1[MAXN],s2[MAXN],a[MAXN],b[MAXN],a1[MAXN],b1[MAXN];
    char num[MAXN];
    void solve()
    {
    int len1 = strlen(s1);
    int p = 0, q = 0,g = 0,h = 0, flaut = 0;
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    memset(a1,0,sizeof(a1));
    memset(b1,0,sizeof(b1));
    for(int i = 0; i < len1; i ++)
    {
    if(s1[i] == '<')
    { flaut ++;continue;}
    if(s1[i] == '>')
    { flaut++;continue;}
    if(flaut==1) {a[p++] = s1[i];}
    if(flaut==3) b[q++] = s1[i];
    if(flaut == 2) a1[g++]=s1[i];
    if(flaut == 4) b1[h++]=s1[i];
    if(((s1[i]>='a')&&(s1[i]<='z'))||(s1[i]==' '))
    printf("%c",s1[i]);
    }
    printf("\n");
    int len2 = strlen(s2);
    for(int j = 0; j < len2; j ++)
    {
    if(s2[j] == '.'){printf("%s%s%s%s\n",b,a1,a,b1);break;}
    printf("%c",s2[j]);
    }
    }
    void input()
    {
    while(gets(num) != NULL)
    {
    sscanf(num,"%d",&n);
    for(int i = 0; i < n; i ++)
    {
    gets(s1);
    gets(s2);
    solve();
    }
    }
    }
    int main()
    {
    input();
    return 0;
    }



  • 相关阅读:
    Android开发之《内存对齐》
    Android开发之《libyuv库的使用》
    Android开发之《ffmpeg解码mjpeg视频流》
    Android开发之《USB Camera》
    Cenos配置Android集成化环境, 最终Centos libc库版本过低放弃
    (警告)不要轻易删除libc.so.6,以及误删恢复
    Android开发之《硬件加速》
    EPANET中的typedef使用
    面试
    NSString copy && strong
  • 原文地址:https://www.cnblogs.com/yuzhaoxin/p/2319229.html
Copyright © 2011-2022 走看看