2
所以我正在使用嵌套結構和將結構作爲參數傳遞給函數。結構作爲參數傳遞,但不能正常工作
這裏是我的主要功能:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct date {
int dd;
int mm;
int yy;
};
struct employee {
char fn[50];
char ln[50];
struct date dob;
struct date sd;
int salary;
};
void take_input(struct employee e);
void give_output(struct employee e);
int main(void)
{
struct employee a; struct employee b; struct employee c; struct employee d; struct employee f;
take_input(a);
take_input(b);
take_input(c);
take_input(d);
take_input(f);
give_output(a);
give_output(b);
give_output(c);
give_output(d);
give_output(f);
return 0;
}
而且這裏有兩個功能:
void take_input(struct employee e)
{
printf("\nFirst name: ");
gets(e.fn);
printf("\nLast name: ");
gets(e.ln);
printf("\nDate of Birth: ");
scanf("%d %d %d", &e.dob.dd, &e.dob.mm, &e.dob.yy);
printf("\nDate of Joining: ");
scanf("%d %d %d", &e.sd.dd, &e.sd.mm, &e.sd.yy);
printf("\nSalary: ");
scanf("%d", &e.salary);
}
void give_output(struct employee e)
{
printf("%s", e.fn);
printf(" %s", e.ln);
printf("\nDate of Birth: %d/%d/%d", e.dob.dd, e.dob.mm, e.dob.yy);
printf("\nStarting Date: %d/%d/%d", e.sd.dd, e.sd.mm, e.sd.yy);
printf("\nSalary: $%d\n", e.salary);
}
的問題是採取輸入和存儲數據不正常的功能。每次程序運行時都需要輸入,但打印時會給出一些垃圾值。但是如果我在沒有函數的情況下運行它(在main()函數下),它可以在相同的代碼下正常工作。我似乎無法找出代碼中的問題,所以任何幫助表示讚賞。
按價值傳遞大型結構也可能會造成嚴重的性能下降。 – tofro