合計 昨日 今日
インフォメーション: 当サイトは3/3~3/4に大規模なメンテを実施し大幅リニューアルします。そのため3/3~3/4に長時間の利用停止時間が発生します。ご了承ください。

[C++] AIZU ONLINE JUDGE <ITP_1_8_A>

フォーラムルール
フォーラムルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Name: mahiknock
[URL]
ぴよぴよ(255 ポイント)
Date: 2018年2月12日(月) 18:04
No: 1
(OFFLINE)

 [C++] AIZU ONLINE JUDGE <ITP_1_8_A>

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++ に慣れてきている段階なので可読性などの些細な点には目をつぶって頂けると幸いです)

コード[C++]: 全て選択
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#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;
}

Name: みけCAT
[URL]
伝説なるハッカー(694,077 ポイント)
Date: 2018年2月12日(月) 19:25
No: 2
(ONLINE)

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

ループを抜けた後に改行を出力しているので、入力で改行を読み込んで出力したのと被ってしまうためにPRESENTATION ERRORになると予想できます。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

Name: mahiknock
[URL]
ぴよぴよ(255 ポイント)
Date: 2018年2月12日(月) 20:17
No: 3
(OFFLINE)

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

[解決!]

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

改行の出力をなくしましたところ、無事正答判定となりました。
みけCAT さん、ありがとうございました。


Return to C言語何でも質問掲示板

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[9人]