Mr.J--藍橋杯--去註釋
阿新 • • 發佈:2018-11-17
問題
給你一段C++程式碼,將其中的註釋去除後輸出剩餘的程式碼。
註釋共有兩種形式:
1. 行注視:以//開頭,一直作用到行尾為止。
例子:
int n;//n表示資料規模
int a;
去註釋後:
int n;
int a;
注意:保留行尾換行符
2. 段注視:以/*開頭,到*//結尾,中間部分都是註釋,可以跨行。
例子:
int main() {
/*
我是
一段
註釋
*/
}
去註釋後:
int main() {
}
注意:由於線上評測系統(Online Judge)對網頁顯示文字作了格式化,一些空行會被刪去,導致上面顯示的刪除後的結果不正確。刪除註釋後,剩餘的程式碼應該是三行,兩行程式碼之間有一個空行。這是因為:在段註釋結尾符的後面有一個換行符,它不在註釋內,需要保留。
輸入格式
一段C++程式程式碼
輸出格式
去掉註釋部分後的程式
樣例輸入
int main() {
/*
我是
一段
註釋
*/
int n;//n表示資料規模
}
樣例輸出
int main() {
int n;
}
#include <stdio.h> #include <string.h> char a[10000]; int main() { int i = 0; while ((a[i] = getchar()) != EOF) { if (a[i] == '/') { a[i + 1] = getchar(); if (a[i + 1] == '*') { while ((a[i + 1] = getchar()) != '/'&&a[i] != '*'); a[i] = getchar(); putchar(a[i]); i++; } else if (a[i + 1] == '/') { while ((a[i] = getchar()) != '\n') a[i] = '\n'; putchar(a[i]); i++; } else { putchar(a[i]); putchar(a[i + 1]); i++; } } else { putchar(a[i]); i++; } } return 0; }