[C++] AIZU ONLINE JUDGE <ITP_1_8_A>

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: [C++] AIZU ONLINE JUDGE <ITP_1_8_A>

Re: [C++] AIZU ONLINE JUDGE <ITP_1_8_A>

#3

by mahiknock » 7年前

みけCAT さんが書きました:ループを抜けた後に改行を出力しているので、入力で改行を読み込んで出力したのと被ってしまうためにPRESENTATION ERRORになると予想できます。
改行の出力をなくしましたところ、無事正答判定となりました。
みけCAT さん、ありがとうございました。

Re: [C++] AIZU ONLINE JUDGE <ITP_1_8_A>

#2

by みけCAT » 7年前

ループを抜けた後に改行を出力しているので、入力で改行を読み込んで出力したのと被ってしまうためにPRESENTATION ERRORになると予想できます。

[C++] AIZU ONLINE JUDGE <ITP_1_8_A>

#1

by mahiknock » 7年前

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;
}

ページトップ