1128: 第四章:谁先爱了,谁就输了
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 370 Solved: 71
[Submit][Status][Web Board]
Description
有时候就是这么奇怪,在那天晚上跟陈孝正杠上之前,郑微从来没有听说过,也没有发现过这个人的存在。当然,也许他曾无数次地从她身边擦肩而过,或许也曾有人有意无意地在她面前说起过这个名字,只不过当时的这个人和这个名字对于郑微来说毫无意义,所以她浑然未觉,然而当她开始留意这个家伙,才发现他无所不在。
本来建筑系和土木系就是一个学院的,彼此关系还算密切,又在同一栋教学楼,简直是抬头不见低头见。而且郑微还惊讶地发现,这家伙居然还小有名气,院里不少人都听说过他,无非是去年高分录取的状元,成绩挺不错,曾在建筑模型设计比赛中获奖之类的。跟阮阮说的大同小异,工程图学的那个老学究也在课堂上提起过他,俨然一副得意门生的口吻,就连卧谈会上她也曾经从黎维娟(郑薇的室友)的嘴里听到过他的名字,一向心高气傲的黎维娟竟然也对他颇为向往。
到底郑薇跟陈孝正是如何杠上的呢?其实是一份C语言程序代码!请把这份C语言代码的注释去除掉。
Input
输入数据中含有一些符合C语言语法的代码行。
Output
输出不含有双斜杠注释的C语言代码,除了注释代码之外,原语句行格式不变,行尾也不应有空格。如果整一行只有注释,那么你应该忽略这一行。
Sample Input
//======================
// simplest program
//======================
#include<stdio.h>
#include<math.h>
//----------------------
int main(){
printf("My World!\n");
return 0;
}//---------------------
Sample Output
#include<stdio.h>
#include<math.h>
int main(){
printf("My World!\n");
return 0;
}
HINT
郑薇意外地爱上了陈孝正。
Source
【解析】
边读边输出。
有个特例需要注意,就是引号中的//也是要输出的,比如printf("//");
#include <bits/stdc++.h>
using namespace std;
int main()
{
char a[10000];
while (gets_s(a))
{
int l = strlen(a), flag = 0, flag1 = 0;//flag表示一行中有注释,flag1表示一行中有注释并且有正文,都用于控制是否输出换行
for (int i = 0; i < l; i++)
{
if (a[i] == '/'&&a[i + 1] == '/')
{
int m = 0, n = 0;
for (int j = i; j >= 0; j--)
if (a[j] == '"')m = 1;
for (int j = i + 2; j < l; j++)
if (a[j] == '"')n = 1;
if (m&&n)
{
printf("/");
continue;
}
flag = 1;
if(i>0)flag1 = 1;
break;
}
printf("%c", a[i]);
}
if (!flag||flag1)puts("");
if (flag&&!flag1)continue;
}
return 0;
}