zoukankan      html  css  js  c++  java
  • 2014年杭电计算机研究生复试的笔试题目:2道acm编程题(2014):1.编写一个浏览器输入输出(hdu acm1088);2.encoding(hdu1020)

    //1088(参考博客:http://blog.csdn.net/libin56842/article/details/8950688)
    //1.编写一个浏览器输入输出(hdu acm1088);
    //思路:对已经输入的字符串进行处理,遇到<br><hr>分别进行处理。遇到多于80个字符(统计该行的长度)或者<br>或者结束,则换行;遇到<hr>,输出80个‘-’。
    #include<stdio.h>
    #include<string.h>
    #define N 10000
    int main()
    {
    char a[N];
    int i;
    int cnt = 0;//用于统计该行是否是达到80chars,当其为0的时候,说明是新的一行的开头
    int len;//用于记录该word的长度
    //一个个word通过每次读入进去,每个word放在字符串中,每次都会进行不同的处理
    //调试的时候发现,将html page整个input进去,每次执行的时候,就会读入以空格和换行为分隔的一个个单词,比如第一行分隔为"Hallo," " dies""ist""eine"
    while (~scanf("%s",a))
    {
    //如果此时读入的word的是<br>,则换行
    if (!strcmp(a,"<br>"))
    {
    printf(" ");
    cnt = 0;
    }
    //如果此时读入的word的是<hr>,
    else if (!strcmp(a, "<hr>"))
    {
    if (cnt)
    {
    //如果不是新的一行的话,需要先重新起一行
    printf(" ");
    //调试的时候跳出该循环,可以在循环外语句设置一个断点
    for ( i = 0; i < 80; i++)
    {
    printf("-");
    }
    printf(" ");
    }
    else
    {
    for (i = 0; i < 80; i++)
    {
    printf("-");
    }
    printf(" ");
    }
    cnt = 0;
    }
    else//判断该word长度和80chars的比较结果
    {
    len = 0;
    len = strlen(a);
    if (!cnt)//cnt为0的时候,说明是新的一行,就不用另起新的一行
    {
    cnt = len;
    printf("%s", a);
    }
    else if (cnt+len+1>80)//cnt是记录在输入该word之前该行的chars数,加上len是该行现在有的chars数,若该行大于80,则换行
    {
    cnt = len;
    printf(" %s", a);
    }
    else
    {
    cnt += len + 1;
    printf(" %s", a);
    }
    }
    }
    printf(" ");
    return 0;
    }

    //1020(C语言基础不够啊,要多多练习)
    //思路:在当前字符后,统计和当前字符相同的字符个数。
    //实现:循环遍历该字符串的每一个字符,判断其和其后的一个字符是否相同,如果相同,则count++;否则,当前字符后面的邻近的一个字符和其不相同,接着先判断count是否是1,如果是1,则直接输出不用继续判断了;如果不是1,则直接输出统计的个数,以及当前字符。
    #include<stdio.h>
    #include<string.h>
    #define N 100001
    char a[N];
    int main(){
    int count;
    int i;
    int n;
    scanf("%d", &n);
    while (n--)
    {
    scanf("%s", a);
    count = 1;
    for ( i = 0; i < strlen(a); i++)
    {
    //判断当前字符后面是否有和当前字符一样的字符,并统计个数
    if (a[i] == a[i + 1])
    {
    count++;
    }
    else
    {
    //如果没有和后面的字符相同的字符了,则根据count做出不同的操作

    //如果count==1,则输出
    if (count==1)
    {
    printf("%c", a[i]);
    }
    //否则,输出count和当前字符
    else
    {
    printf("%d%c", count, a[i]);
    count = 1;
    }
    }
    }
    printf(" ");
    }
    return 0;
    }

    一生有所追!
  • 相关阅读:
    1104 Sum of Number Segments (20 分)(数学问题)
    1092 To Buy or Not to Buy (20 分)(hash散列)
    1082 Read Number in Chinese (25 分)(字符串处理)【背】
    1105 Spiral Matrix (25 分)(模拟)
    初识网络安全及搭建网站(内网)
    HTML5开发者需要了解的技巧和工具汇总(转)
    native+web开发模式之web前端经验分享
    移动平台3G手机网站前端开发布局技巧汇总(转)
    Asp.net 中图片存储数据库以及页面读取显示通用方法详解附源码下载
    使用H3Viewer来查看VS2010的帮助文档
  • 原文地址:https://www.cnblogs.com/BlueBlue-Sky/p/8493246.html
Copyright © 2011-2022 走看看