我是靠谱客的博主 精明绿茶,这篇文章主要介绍1138 清除行注释(宁波大学oj),现在分享给大家,希望可以做个参考。

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 7779 | 通过数 : 2619

题目描述

复制代码
1
给出一个C++源程序代码,请将其中的注释去掉。已知注释全部采用行注释的形式,即用双斜杠开头的字符串,后面的内容全部作为注释内容(包含双斜杠)。

输入要求

复制代码
1
输入若干行源程序代码(含行注释),以文件控制结束。

输出要求

复制代码
1
输出去掉注释后的代码,其余内容不变。

输入样例

复制代码
1
2
3
4
5
6
7
8
9
//====================== // simplest program //====================== #include<stdio.h> using namespace std; //---------------------- int main(){ cout<<”hello world!n”; }//---------------------

输出样例

复制代码
1
2
3
4
5
6
#include<stdio.h> using namespace std; int main(){ cout<<”hello world!n”; }

提示

复制代码
1
原题目把注释清掉后还要把由此产生的空行删掉,题目复杂些。现在把测试数据改了下,真的是“其余内容不变”。

在每日学习中选择G++语言提交,因为gets函数可能在c中提交不了,这个函数在旧的编译器可以用,新的用不了

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<stdio.h> int main() { char a[1006]; for(int i=0;gets(a);i++) {//对输入的每一串字符串进行判断,一个字符串占一行, //这里的gets函数输入的字符串结尾隐含着'',回车的意思 //这也是外面这个for循环跳出循环语句的出口 //每一行的开始由gets输入一串字符 //(非常重要) 即for(a;b;c) ,当b==''的时候,就跳出这个for循环 (非常重要) (非常重要) (非常重要) (非常重要) for(int j=0;a[j]!='';j++)//这个for是对每一串输入的字符串一个个字符的遍历 { if(a[j]=='/'&&a[j+1]=='/') {//如果遇见相邻两个字符出现斜杠,就跳出此循环,开始下一行(字符串)判断。 break; } else { printf("%c",a[j]);//每个字符依次输出 } } printf("n"); } return 0; }

 

 还有以下这个是借鉴了另外一个同学的代码

可以借鉴学习参考一下

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h> #include<string.h> void schzs(char a[]){ int n,i; n=strlen(a); for(i=0;a[i];i++){ if(a[i]=='/'&&a[i+1]=='/'){ break; }else{ printf("%c",a[i]); } }printf("n"); } int main(){ char a[1000]; while(gets(a)){ schzs(a); } return 0; }

最后

以上就是精明绿茶最近收集整理的关于1138 清除行注释(宁波大学oj)的全部内容,更多相关1138内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部