#include <stdio.h>
typedef struct Record
{
char Employee[10];
float H_wage;
float H_worked;
float G_pay;
float Taxes;
float N_pay;
}Record;
int main()
{
int i , N;
float G_pay = 0, Taxes = 0, N_pay = 0;
printf("Please input the number of record:");
scanf("%d", &N);
Record record[N]; //此处引用了键盘读取的N,这在C99中是不可以的
for (i = 0; i < N; i++)
{
printf("Record %d Employee name:", i + 1);
scanf("%s", &record[i].Employee);
printf("Record %d Hourly wage:", i + 1);
scanf("%f", &record[i].H_wage);
printf("Record %d Hours worked:", i + 1);
scanf("%f", &record[i].H_worked);
record[i].G_pay = record[i].H_wage * record[i].H_worked;
record[i].Taxes = record[i].G_pay * 0.1;
record[i].N_pay = record[i].G_pay - record[i].Taxes;
G_pay = G_pay + record[i].G_pay;
Taxes = Taxes + record[i].Taxes;
N_pay = N_pay + record[i].N_pay;
}
printf("\n\nOUTPUT SECTION\n");
printf("---------------------------------------------------------\n");
printf("Employee name Gross pay Taxes Net pay\n");
printf("---------------------------------------------------------\n");
for (i = 0; i < N; i++)
{
printf("%10s $%8.2f $%8.2f $%8.2f\n", record[i].Employee, record[i].G_pay, record[i].Taxes, record[i].N_pay);
}
printf("---------------------------------------------------------\n");
printf(" Total $%8.2f $%8.2f $%8.2f\n", G_pay, Taxes, N_pay);
return 0;
}
正确示例:
#include <stdio.h>
#include <windows.h>
#include <iostream>
typedef struct Record
{
char Employee[10];
float H_wage;
float H_worked;
float G_pay;
float Taxes;
float N_pay;
}Record;
int main()
{
int i , N;
float G_pay = 0, Taxes = 0, N_pay = 0;
printf("Please input the number of record:");
scanf("%d", &N);
Record *record = (Record *)malloc(N * sizeof(Record)); //使用malloc函数进行动态分配内存,C++中用new
for (i = 0; i < N; i++)
{
printf("Record %d Employee name:", i + 1);
scanf("%s", &record[i].Employee);
printf("Record %d Hourly wage:", i + 1);
scanf("%f", &record[i].H_wage);
printf("Record %d Hours worked:", i + 1);
scanf("%f", &record[i].H_worked);
record[i].G_pay = record[i].H_wage * record[i].H_worked;
record[i].Taxes = record[i].G_pay * 0.1;
record[i].N_pay = record[i].G_pay - record[i].Taxes;
G_pay = G_pay + record[i].G_pay;
Taxes = Taxes + record[i].Taxes;
N_pay = N_pay + record[i].N_pay;
}
printf("\n\nOUTPUT SECTION\n");
printf("---------------------------------------------------------\n");
printf("Employee name Gross pay Taxes Net pay\n");
printf("---------------------------------------------------------\n");
for (i = 0; i < N; i++)
{
printf("%10s $%8.2f $%8.2f $%8.2f\n", record[i].Employee, record[i].G_pay, record[i].Taxes, record[i].N_pay);
}
printf("---------------------------------------------------------\n");
printf(" Total $%8.2f $%8.2f $%8.2f\n", G_pay, Taxes, N_pay);
system("pause");
return 0;
}
总之就是酱紫喽,后面的格式打印主要是printf()函数的应用,大家可以参考我日志中的C语言学习摘要中的内容,写的不好,还请笑看哈!