私は比較的新しいコーディングをしています。現在Cを勉強しています。私は教科書の運動に関するいくつかの問題を抱えていました。whileループ変数の初期化と変数のタイプ(C)
練習の主な目的は、従業員が受け取るべき給与の合計を、実行された作業時間と時間単位の時間を入力することによって計算することです。料金は100%から40時間までですが、40時間後には150%まで上がります。ここで私が書いたコードは次のとおりです。
#include <stdio.h>
int main (void) {
int employee, hour, ratenormal, totalrate, counter, rate;
int salary;
hour = 1;
while (hour != -1) {
printf("Enter # of hours worked (-1 to end): ");
scanf_s("%d", &hour);
if (hour == -1) break;
printf("Enter hourly rate of the work ($00.00): $");
scanf_s("%d", &rate);
if (hour <= 40) {
salary = hour * rate;
}
else if (hour > 40) {
salary = salary + ((hour - 40) * (rate * 1.5));
}
printf("Salary is $%d\n\n", salary);
}
return 0;
}
私は質問のカップルを持っていた:
1)私はfloat型として変数「給与」を宣言した場合つまり、なぜ、その結果のみ0を出力しますか?
2)ループはうまく動作しますが、最初の反復でのみ機能します。問題は、変数の給与を再度初期化する必要があることです。それ以外の場合は、以前に使用された値の一部を保存し続けます。どうすればこのことができますか?
ありがとうございました!