私は給与から控除を見つけるためにユーザー入力を得ようとしているので、IDとそのID番号の範囲にある給料を入れます。たとえば、ID 1を入力してから給与500を入力し、入力した給与、給与控除、および正味給与を出力する必要があります。それはすべてですが、給与が正しいID番号の範囲内にあるかどうかをチェックするところでは、入力されたIDがチェックされた後でも、すべてのID番号でチェックします。if文が成功した後で停止する方法は? Cのプログラミング
#include <stdio.h>
#include <stdlib.h>
int main()
{
int ID; // variable for ID
float Base_Salary; // variable for base salary
float Amount_Deducted; // variable for amount deducted from employee
float Net_Salary; // variable for employees' net salary
printf("%s", "Enter ID: \n"); // prompt for ID number
scanf("%d", &ID);
// Validate user's ID
if (ID == 1)
printf("You have entered the ID 1\n");
else { if (ID == 2)
printf("You have entered the ID 2\n");
else { if (ID == 3)
printf("You have entered the ID 3\n");
else { if (ID == 4)
printf("You have entered the ID 4\n");
else { if (ID == 5)
printf("You have entered the ID 5\n");
else { if (ID < 1 && ID > 5)
printf("You didn't enter a proper ID\n");
}
}
}
}
}
printf("%s", "Enter your salary in the appropriate range: \n");
scanf("%f",&Base_Salary);
// Validations
if (ID == 1 && Base_Salary >= 100 && Base_Salary <= 1000) {
printf("Base salary is in range for ID given.\n");
}
else {
printf("Salary must be between 100-1000 for ID 1.\n");
}
if (ID == 2 && Base_Salary >= 1001 && Base_Salary <= 5000) {
printf("Base salary is in range for ID given.\n");
}
else {
printf("Salary must be between 1001-5000 for ID 2.\n");
}
if (ID == 3 && Base_Salary >= 5001 && Base_Salary <= 10,000) {
printf("Base salary is in range for ID given.\n");
}
else {
printf("Salary must be between 5001-10,000 for ID 3.\n");
}
if (ID == 4 && Base_Salary >= 10,001 && Base_Salary <= 15,000) {
printf("Base salary is in range for ID given.\n");
}
else {
printf("Salary must be between 10,001-15,000 for ID 4.\n");
}
if (ID == 5 && Base_Salary >= 15,001 && Base_Salary <= 20,000) {
printf("Base salary is in range for ID given.\n");
}
else {
printf("Salary must be between 15,001-20,000 for ID 5.\n");
}
// Calculations
if (ID == 1) {
Amount_Deducted = Base_Salary * 0.50;
Net_Salary = Base_Salary - Amount_Deducted;
printf("The Base Salary you have entered = %.2f.\n", Base_Salary);
printf("The Amount of salary deducted is = %.2f.\n", Amount_Deducted);
printf("The Net Salary is = %.2f.\n", Net_Salary);
}
if (ID == 2) {
Amount_Deducted = Base_Salary * 1.50;
Net_Salary = Base_Salary - Amount_Deducted;
printf("The Base Salary you have entered = %.2f.\n", Base_Salary);
printf("The Amount of salary deducted is = %.2f.\n", Amount_Deducted);
printf("The Net Salary is = %.2f.\n", Net_Salary);
}
if (ID == 3) {
Amount_Deducted = Base_Salary * 2.50;
Net_Salary = Base_Salary - Amount_Deducted;
printf("The Base Salary you have entered = %.2f.\n", Base_Salary);
printf("The Amount of salary deducted is = %.2f.\n", Amount_Deducted);
printf("The Net Salary is = %.2f.\n", Net_Salary);
}
if (ID == 4) {
Amount_Deducted = Base_Salary * 3.50;
Net_Salary = Base_Salary - Amount_Deducted;
printf("The Base Salary you have entered = %.2f.\n", Base_Salary);
printf("The Amount of salary deducted is = %.2f.\n", Amount_Deducted);
printf("The Net Salary is = %.2f.\n", Net_Salary);
}
if (ID == 5) {
Amount_Deducted = Base_Salary * 4.50;
Net_Salary = Base_Salary - Amount_Deducted;
printf("The Base Salary you have entered = %.2f.\n", Base_Salary);
printf("The Amount of salary deducted is = %.2f.\n", Amount_Deducted);
printf("The Net Salary is = %.2f.\n", Net_Salary);
}
}
switch文はどうですか? – bruceg
いい階段があります。それを取り除く! – bolov
行 '55、61、67' - "警告:カンマ式の左辺オペランドは効果がありません "* - あなたはコンパイラの警告を読んでいませんか? –