0

私はCの簡単な方程式を使用してスケジューラーを作成しようとしています。このプログラムの目標は、ユーザーが1週間に勉強/仕事に費やす時間を尋ねることです(40時間以上かかる場合は、完了したことをユーザーに伝えます)。週の間)。

これは初歩的な作業なので、過去にpython 3.3で同様のことを行っていたので、かなり簡単だと思っていましたが、多くの実験を行った後、プログラムを正しく機能させることができないようです。

  • 私のプログラムは整数で動作しますが、小数では動作しません。フロートを統合するにはどうすればよいですか?d%をf%に変更しますか?

解決済み*主な問題は、ユーザーが入力した数値に関係なく、大きな負の数が常に最終的な回答として表示されることです。私はPythonの知識を使って、Cでこの問題を解決しようとしましたが、これまでのところ、どこが間違っているのか正確に理解することはできません。*

建設的な批判やアドバイスは驚くべきものです。

コーディングの背後にあるプロセスを示すコメントを追加しました

#include <stdio.h>

int main() {
    int a;
    printf("How many hours in a week are you in class?");
    scanf("%d", &a);

    int b;
    printf("How many hours a week are you studying?");
    scanf("%d", &b);

    int c;
    printf("How many hours have you already spent in class and studying this week?");
    scanf("%d", &c);

    int x = (a+b+c);

    if(x >= 40){
        printf("You have spent all the time required for this week.\n");
    }
    else{
        printf ("You have %d hours more to work and study for this week.\n", x);
    }

    //return 0 to end
    return 0;
}

前もって感謝します!

編集 *

'大きな負の数'エラーは、CodeBlocksの現在のセッションでのみ発生していたようです。

コンピュータを再起動してプログラムをリロードしたところ、正常に動作しているようです。ただし、私のコードは完璧ではないことを私は知っています。それでも、私より経験豊富な人の入力をいただければ幸いです。

ご協力ありがとうございました。

4

1 に答える 1

2

scanf(%d, *int)改行文字を取得していますscanfを呼び出す前に、scanfまたはfflush(STDIN)の代わりにfgetsをクリアしてバッファをクリアしてください

于 2013-02-22T06:03:08.820 に答える