-2

このコードが総賃金などを計算しない理由を誰かに教えてもらえますか?このコードには、プログラムが望んでいるように計算されないという問題があります。誰かが私がエラーを特定するのを手伝ってもらえますか?

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

int main()
{
  char fname[20];
  char lname[20];
  char IDnumber[20];
  char Position;
  float Hoursworked,Grosspay,Tax,Netpay;

  printf(" ************iG Company************** \n\n");
  printf("Enter the employee's First Name:\n");
  scanf("%s", &fname);
  printf("Enter the employee's Last Name:\n");
  scanf("%s", &lname);
  printf("Enter IDnumber:\n");
  scanf("%s",&IDnumber);
  printf("<1>Manager <2>Supervisor heart>Employee <4>Office Boy/girl \n");
  printf("Enter Position:\n");
  scanf("%s", &Position);
  switch(Position)
  {
    case '1':
      printf("Rate per hour:P150.00 \n");
      printf("No. of hours worked:");
      scanf("%d", &Hoursworked);
      Grosspay = Hoursworked * 150;
      printf("Gross: \n", Grosspay);
      Tax = Grosspay * 0.1f;
      printf("TAX:\n", Tax);
      Netpay = Grosspay - Tax;
      printf("NET PAY: \n", Netpay);
      break;
    case '2':
      printf("Rate:P100.00 \n");
      printf("No. of hours worked:");
      scanf("%d", &Hoursworked);
      Grosspay = Hoursworked * 100;
      printf("Gross:\n", Grosspay);
      Tax = Grosspay * 0.1f;
      printf("TAX: \n", Tax);
      Netpay = Grosspay-Tax;
      printf("NET PAY: \n", Netpay);
      break;
    case '3':
      printf("Rate:P70.00 \n");
      printf("No. of hours worked:");
      scanf("%d", &Hoursworked);
      Grosspay = Hoursworked * 70;
      printf("Gross: \n", Grosspay);
      Tax = Grosspay * 0.1f;
      printf("TAX:\n", Tax);
      Netpay = Grosspay - Tax;
      printf("NET PAY: \n", Netpay);
      break;
    case '4':
      printf("Rate per hour:P50.00 \n");
      printf("No. of hours worked:");
      scanf("%d", &Hoursworked);
      Grosspay = Hoursworked * 50;
      printf("Gross:\n", Grosspay);
      Tax = Grosspay * 0.1f;
      printf("TAX:\n", Tax);
      Netpay = Grosspay - Tax;
      printf("NET PAY:\n", Netpay);
      break;
    default:
      printf("Invalid");
  }
  getch();
}
4

3 に答える 3

3

このプログラムは実際に値を計算しますが、出力しません。変化する、

scanf("%d",&Hoursworked);

Grosspay=Hoursworked*150;
printf("Gross: \n",Grosspay);
Tax=Grosspay*0.1f;
printf("TAX:\n",Tax);


Netpay=Grosspay-Tax;
printf("NET PAY: \n",Netpay);

scanf("%f",&Hoursworked); //Houseworked is declared float

Grosspay=Hoursworked*150;
printf("Gross: **%f**\n",Grosspay); //you have to specify what type to print
Tax=Grosspay*0.1f;
printf("TAX:**%f**\n",Tax);


Netpay=Grosspay-Tax;
printf("NET PAY: **%f**\n",Netpay);

それに応じて完全なコードを変更すると、結果が得られるはずです..:)

于 2012-09-05T11:03:31.260 に答える
2

%fのフォーマット文字列が欠落しているため、計算されますが印刷されませんprintf

于 2012-09-05T11:00:30.887 に答える
1
printf("Gross:\n",Grosspay);

その文字列に変数のプレースホルダーがありません。printfを使用して変数値を出力する場合、最初の文字列には、次の変数が挿入されるプレースホルダーが含まれている必要があります。

printf("Gross: %f\n",Grosspay);

%fはGrosspayの値に置き換えられます。

于 2012-09-05T11:00:17.260 に答える