0

私はクリスチャンで、現在 C++ の初心者であり、学習しようとしていますが、限界に達していると思います。すでに他のことを試しましたが、プログラムを機能させることができないようです。これは私のコース要件の 1 つでもあり、これを修正する方法を理解するのに本当に苦労しています。

基本的に、ユーザーはステーション (a、b、c) を入力し、プログラムは料金を計算する必要がありますが、a、b、または c を入力した後、プログラムは 0.00000 を出力し、任意のキーが自動的にインターフェイスを閉じます。

これが私が使いたかったコードのサンプルです:

#include<stdio.h>
#include<conio.h>

main()

{
float fee, to, from, a, b, c;
printf("Enter your current station: ");
scanf("%f",&from);
printf("Enter the station you want to go: ");
scanf("%f",&to);

if((to == a && from == b))
a = 10;
b = 15;
fee = to + from;
printf("%f", fee);

if((to == b && from == a))
a = 10;
b = 15;
fee = to + from;
printf("%f", fee);

if((to == c && from == a))
a = 10;
c = 5;
fee = to + from;
printf("%f", fee);

if((to == a && from == c))
a = 10;
c = 5;
fee = to + from;
printf("%f", fee);

if((to == b && from == c))
a = 10;
c = 5;
fee = to + from;
printf("%f", fee);

getch();
}

読んでくれてありがとう、本当に感謝しています。

4

2 に答える 2

3

この行:

if((to == a && from == b))

a も b も初期化されていないときに、値を a および b と比較しています。変数をそれらと比較する前に、それらに値を与える必要があります。

また、if ステートメントの後に中かっこもありません。彼らはおそらくあなたが思っていることをしていません。コードは現在のように、各 if ステートメントの直後の行のみが条件付きで実行されます。

編集: 気がつきませんでした..フロートとして入力を取得しています。あなたがやりたかったことは、文字として読み込んだり、文字から読み込んだり、ifステートメントを次のように書いたりすることだったと思います:

 if((to == 'a' && from == 'b'))
于 2013-03-08T12:20:48.223 に答える
1

文字「a」、「b」、または「c」のユーザー入力を float 変数に格納しようとしています。これは機能しません。

1 つの if ステートメントに属するものはすべて、1 つのブロックに入る必要があります。

if(condition)
{
    operation1
    operation2
    ...
}

また、料金の値を取得するために追加する変数を確認してください。


「見るだけで多くのことがわかる。」- ヨギ・ベラ

于 2013-03-08T12:27:52.357 に答える