AIZU ONLINE JUDGE <ITP_1_8_A> の問題に関してです。
************************************************************
https://onlinejudge.u-aizu.ac.jp/#/cour ... 8/ITP1_8_A
※以下引用
大文字と小文字の入れ替え
与えられた文字列の小文字と大文字を入れ替えるプログラムを作成してください。
// Input
文字列が1行に与えられます。
// Output
与えられた文字列の小文字と大文字を入れ替えた文字列を出力して下さい。
アルファベット以外の文字はそのまま出力して下さい。
// Constraints
入力される文字列の長さ < 1200
// Sample Input
fAIR, LATER, OCCASIONALLY CLOUDY.
// Sample Output
Fair, later, occasionally cloudy.
************************************************************
コードを提出したところ PRESENTATION ERROR と判定されました。
自身で調べて改良を加えているものの一向に改善する気配がありません。
環境は C++ gcc 5.1.1 20150422 (Red Hat 5.1.1-1) です。
些細なミスだと思いますが自身では気づけていないので、改良点を教えて下さい。
(C++ に慣れてきている段階なので可読性などの些細な点には目をつぶって頂けると幸いです)
コード:
#include <iostream>
#include <cstdio>
using namespace std;
class ORDER {
public:
char temp;
void CHANGE() {
while (temp = cin.get()) {
if (temp == EOF) {
cin.clear();
cin.seekg(0, ios::end);
break;
}
if (0x41 <= temp && temp <= 0x5A) { // 0x41 = 'A', 0x5A = 'Z'
temp += 0x20;
}
else if (0x61 <= temp && temp <= 0x7A) { // 0x61 = 'a', 0x7A = 'z'
temp -= 0x20;
}
cout << temp << flush;
}
cout << endl;
}
};
int main() {
ORDER x;
x.CHANGE();
return 0;
}