鱼C论坛

 找回密码
 立即注册
查看: 3012|回复: 1

新手求助

[复制链接]
发表于 2020-3-24 17:37:36 | 显示全部楼层 |阅读模式
10鱼币
题目描述
C语言的注释分为两种,第一种:在一行源代码中“//”后的内容为注释内容。第二种:“/*”与“*/”之间的内容为注释内容。第三种:程序中只出现了“/*”,没有“*/”与之对应,那么将“/*”后的全部内容都要过滤掉。注意,只要是注释内容,那么注释内容中的字符应该全部忽略,即不起任何的作用。例如“/*”与“*/”之间如果再有“//”,那么“//”不应起作用;如果“//”再有“/*”,那么“/*”也不应起作用。
你的任务是先打开一个名字为dict.dic的文本文件,该文件中前5行每行为1个整数,从第6行开始为5段C语言的源代码。那5个数字代表这5段源代码结束的行数,比如如果第一行的整数为20,第二行的整数为60,则表示从第6行到第20为第一段代码,从第21行到第60为第二段代码。然后根据输入要求将源代码中所有注释过滤掉。
在本过滤注释系统中,你可以忽略源文件中双引号导致“//”、“/*”、“*/”失去作用的情况,即只要“//”、“/*”、“*/”不是注释内容,在任何情况下都起作用。
输入
只可能是1,2,3,4,5之一
输出
输入为1则输出第一段代码过滤后的结果,输入为2则输出第二段代码过滤后的结果,依此类推。
样例输入
1
样例输出
如果第一段代码是这样:


#include<stdio.h>

int main()
{
        int a = 10 , b = 2 , c ;
        c = a / b ; //I just want to test '/'
        printf("I love programming C.\n") ; //"printf" is a useful function /*
        printf("I hope you love it too!\n") ;
        /*
        //C is not always hard , if you love it , it will not treat you rough.
        */
        return 0 ;
}

则输出是这样:


#include<stdio.h>

int main()
{
        int a = 10 , b = 2 , c ;
        c = a / b ;
        printf("I love programming C.\n") ;
        printf("I hope you love it too!\n") ;

        return 0 ;
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-24 17:38:42 | 显示全部楼层
学校oj上的一道题目,卡了很久了,谁能帮帮我。我目前只会最基础的c语言,没学数据结构和算法,文件操作只会最简单的fopen,putc,fseek等函数,会用的函数库也只有stdio.h,string.h这些。所以各位大哥尽量用基础方法解决,让我这个初学者能看得懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 03:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表