#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 100000
typedef struct {
int day;
int month;
int year;
} DATE;
typedef struct {
char name[100];
int age;
float hrlyWage;
float hrsWorked;
float regPay;
float otPay;
float totalPay;
DATE payDate;
} PAYRECORD;
int newRecord(struct PAYRECORD record[], int index){
//set name to \0 so it can work as string
record[index].name = {'\0'};
index++;
return index;
}
int main(){
char menuChoice = 'X';
struct PAYRECORD record[SIZE];
int index = 0;
while (menuChoice != 'Q'){
system("pause");
system("cls");
menuChoice = runMenu();
switch (menuChoice){
case 'A':
index = newRecord(record, index);
}
}
}
main设置一个结构数组,传递给newRecord,目的是使它能够在这里输入数据,然后返回新索引来跟踪我的结构数组。然而,当我的程序似乎没有将newRecord识别为一个函数时,就出现了一些问题,最终导致整个程序无法运行。
我得到了newRecord中所有函数的语法错误,尽管我认为这是因为,正如我所提到的,程序似乎无法将newRecord识别为用户定义的函数。
最佳答案
使用struct PAYRECORD
是错误的,因为没有这种类型。您只有一个名为typedef
的PAYRECORD
。
如果您希望能够同时使用struct PAYRECORD
和PAYRECORD
,请将struct
的定义更改为:
typedef struct PAYRECORD {
char name[100];
int age;
float hrlyWage;
float hrsWorked;
float regPay;
float otPay;
float totalPay;
DATE payDate;
} PAYRECORD;
如果这不是您的目标,那么只需将
struct PAYRECORD
的用法更改为PAYRECORD
。另外,行:
record[index].name = {'\0'};
in
newRecord
不正确。不能分配给这样的数组。更改为:record[index].name[0] = '\0';