1

コンパイル時にエラーはありません...しかし、出力には何も得られません。私はこれがコーディングにおける非常に初歩的な試みであることを知っています.私は主に数字を扱ってきました.

#include <iostream>
#include <string>

using namespace std;
char chr;

int main()
{
    string name;
    string artist;
    string Taylor;
    string Alan;
    string general;
    string box;
    string seating;

    cout << "Enter your name followed by the return key" << endl;
    cin >> name;
    cout << endl;
    cout << "Enter Taylor for Taylor Swift tickets or Alan for Alan Jacskon seats, followed" << endl << "by the enter key" << endl << endl;
    cout << "Enter box for box seating or general for general seating, followed by the enter key" << endl << endl;
    cin >> artist;
    cin >> seating;

    if ( artist + seating == Taylor + general )
        cout <<  name << ", Your ticket will cost $60" << endl;
    else if ( artist + seating == Taylor + box )
        cout <<  name << ", Your ticket will cost $100" << endl;
    else if ( artist + seating == Alan + box )
        cout <<  name << ", Your ticket will cost $75" << endl;
    else if ( artist + seating == Alan + general )
        cout <<  name << ", Your ticket will cost $50" << endl;

    cin >> chr;
    return 0;
}
4

4 に答える 4

2

TaylorAlangeneralおよびboxは、変数ではなく、論理リテラル値にあります...動作するコードは次のようになります

string Taylor = "Taylor";
string Alan = "Alan";
string general = "general";
string box = "box";

C++ では、残念ながらただ書くことはできません

if ( artist + seating == "Taylor" + "general" )

理由が複雑すぎてここで説明できないため、代わりにこれらの値の変数を削除して使用することができます

if ( artist + seating == "Taylorgeneral" )

ところで: C++ がプログラミングの学習に適しているかどうかはわかりません。私の意見では、この仕事により適しているのはPython (または 6502 のような単純な CPU のアセンブラーでのコーディングですが、それは別の完全に異なるアプローチです) です。

于 2013-10-19T06:09:53.763 に答える
1

文字列Taylor, Alan, general, boxは決して初期化されません。それらを比較しても意味がありません。おそらくあなたが望むのは:

string Taylor = "Taylor";
string Alan = "Alan";
string general = "general";
string box = "box";
于 2013-10-19T06:08:32.413 に答える
0

文字列テイラーを初期化していません。文字列アラン; 文字列一般; ストリングボックス; したがって、それらはすべて ='\0' であり、どのケースにも一致しないため、出力は得られません。さらに、入力に cin を使用すると、'\n' ,' ' が無視されます。入力に cin.getline(string a) を使用することもできます

于 2013-10-19T06:36:03.460 に答える
0

if ステートメントをこの形式に変更すると、機能しました。

if (( アーティスト == "テイラー") && (座席 == "一般"))

  cout <<  name << ", Your ticket will cost $60" << endl;
于 2013-10-19T06:21:26.850 に答える