【发布时间】:2016-08-20 16:00:25
【问题描述】:
有一个结构体数组,传递给accept函数,以便在结构体中存储一些值。 accept 函数内的循环只迭代一次,最多只能到 scanf。
struct emp
{
int age;
char name[20];
float sal;
};
void display(struct emp *);
void accept(struct emp *);
void main()
{
clrscr();
struct emp E[3];
accept(E);
display(E);
getch();
}
void accept(struct emp *p)
{
int i;
for(i=0;i<3;i++)
{
printf("Enter age, name and sal: ");
scanf("%d %s %f",&(p+i)->age,(p+i)->name,&(p+i)->sal);
}
}
void display(struct emp *p)
{
int i;
for(i=0;i<3;i++)
{
printf("Result: %d %s %f",(p+i)->age,(p+i)->name,(p+i)->sal);
}
}
请更正代码。
【问题讨论】:
-
然后会发生什么?程序是否崩溃,是否挂起,是否调用了显示函数,...?
-
仍然缺少的信息:您要输入什么,使用调试器中断函数时会发生什么,...
-
显示您的输入之一
-
在修复
main的签名并删除特定于平台的clrscr和getch之后,它appears to work fine(在测试可读性后添加了换行符)。 -
main() 的签名?