时间限制 : 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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复