细节题,记录一下(最近感觉愈发愈菜了,细节题写半天)
题目
1128: 第四章:谁先爱了,谁就输了
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 483 Solved: 114
[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;
}
AC代码
小细节:注意,//可能作为输出内容而不是表示注释,这里特判一下
#include<stdio.h>
#include<string.h>
#include<queue>
#include<iostream>
using namespace std;
const int INF = -66536 ;
int main()
{
string str;
while(getline(cin,str))
{
int flag1,flag2;
flag1 = flag2 = 0;
int n,m;
n = m = 0;
int len = str.length();
for(int i=0;i<len;i++){
if(str[i]=='/'&&str[i+1]=='/'){
for(int j=i;j>=0;j--)if(str[j]=='"')m = 1;
for(int k=i+2;k<len;k++)if(str[k]=='"')n = 1;
if(n&&m){cout << "/";continue;}
//标记出现过注释
flag1 = 1;
if(i>0)flag2 = 1;
//注释后边的就不用输出了
break;
}
cout << str[i];
}
//换行的条件:出现了//或者一整行都没出现过//,末尾换行
if(flag2||!flag1)
puts("");
}
return 0;
}
总结
细节题,没什么好说的