【解決方法】学年向けのプログラムを作成してA+のみを反映させてみました


C++
#include<stdio.h>

int main()
{
    int marks;
    printf("Enter the Marks:");
    scanf("%d", &marks);

    if("marks >= 95"){
        printf("Grade is A+ \n");
    }
    else if("marks > 80 && marks < 95"){
        printf("Grade is B+ \n");
    }
    else if("marks > 70 && marks < 80"){
    printf("Grade is B \n");
    }
    else {
        printf("Grade is C \n");
    }
    printf("Thank you!");
    return 0;
}

私が試したこと:

if関数とelse if関数について学びました。 コードをコンパイルしようとしましたが、想定どおりに実行されません。

解決策 1

C++
if("marks >= 95"){
   ^           ^

あなたはあなたの if 二重引用符で囲まれた式は、評価されないことを意味します*。 引用符を削除するだけで、コンパイラは適切な式テストを構築できます。

※実際には文字列はありませんので、 NULL 彼らは常に次のように評価します TRUE

解決策 2

if そして else if 関数ではありません。 それらは言語の構成要素です。

について学んだと言っていましたね if、 でも足りない。 条件式を引用符で囲まないでください。

C++
if("marks >= 95"){

になる

C++
if(marks >= 95)
{

あなたは初心者なので、どの中括弧が互いに並んでいるかを簡単に追跡できるように、開始中括弧を単独の行に配置することを強くお勧めします。

C++
if (marks >= 95)
{
    printf("Grade is A+ \n");
}

解決策 3

これまでに述べたことにさらに付け加えると、デバッガと呼ばれる役立つツールがほぼ確実に存在します。 使用方法はコンパイラ システムによって異なりますが、IDE の名前と「デバッガ」を Google で検索すると、必要な情報が得られるはずです。 これにより、コードを 1 行ずつ実行し、変数を調べてその内容を確認し、実行中にコードがどこに行くのかを追跡できるようになります。

関数の最初の行にブレークポイントを設定し、デバッガーでコードを実行します。 次に、コードとデータを調べて、手動で何が起こるかを考えます。 次に、各行を 1 ステップずつ実行して、期待したことが実際に起こったかどうかを確認します。 そうでない場合は、問題が発生しているときなので、前に戻って (またはもう一度実行して詳しく調べて) 理由を調べることができます。

申し訳ありませんが、私たちはそれを行うことはできません。新しい (そして非常に便利な) スキルであるデバッグを学ぶ時期です。

コメント

タイトルとURLをコピーしました