打印時發生編譯器錯誤我的任務是使用結構體獲取員工信息輸入並輸出他們的薪水。試圖從struct
它似乎運行正常,直到我到底並嘗試printf()
的計算結果。編譯器告訴我[Error] request for member '*' in something not a structure or union
。 (用ID,名稱,grossPay,netPay替換*)
對不起,如果它被問到;我仍然對結構/指針/等新手,所以我懷疑這是一個簡單的錯誤。這只是不跳出來對我。我瀏覽了前面的一些問題,但很多都是針對具體情況的。
// Matt Posey - PP #20
#include <stdio.h>
struct employee
{
char ID[6];
char name[20];
float hours;
float payRate;
float grossPay;
float netPay;
};
int main()
{
int j, i = 0;
int employees;
printf("This program computes pay.\n");
printf("\nNumber of employees: ");
scanf("%d", &employees);
fseek(stdin,0,SEEK_END);
// Get data
for (i = 0; i < employees; i++)
{
j = i;
struct employee j;
printf("\nFor employee %d:", i+1);
printf("\nID: ");
gets(j.ID);
fseek(stdin,0,SEEK_END);
printf("Name: ");
gets(j.name);
fseek(stdin,0,SEEK_END);
printf("Pay rate: ");
scanf("%f", &j.payRate);
fseek(stdin,0,SEEK_END);
printf("Hours worked: ");
scanf("%f", &j.hours);
fseek(stdin,0,SEEK_END);
j.grossPay = j.hours * j.payRate;
if (j.hours > 40)
{
printf("Overtime!");
float OT = (j.hours - 40) * (j.payRate * 0.5);
j.grossPay += OT;
}
j.netPay = j.grossPay * 0.75;
}
// Output data
printf("\n\nID | Name | Gross Pay | Net Pay");
printf("\n------ | -------------------- | --------- | -------");
for (i = 0; i < employees; i++)
{
j = i;
printf("\n%c | %c | $%7.2f | $%7.2f", j.ID, j.name, j.grossPay, j.netPay);
}
return 0;
}
ÿ你沒有數組或列表來存儲'員工'。 – McLovin
爲什麼'fseek(stdin,0,SEEK_END);'? –
'gets'是一個可怕的功能。切勿使用它。 – chris