为什么printf无法识别C中的结构元素



我的代码应该获取'n'个驱动程序的基本信息,并以良好的方式打印出来。我必须使用structure,但我想知道为什么在打印数据时它不能识别driver.name和其他结构元素,它显示的是"未声明的driver.name"。注意:我刚刚学习了c中的结构,对动态内存分配一无所知。

struct manager
{
char name[50];
int dln;
char route[100];
float kms;
};
int main()
{
int n;
printf("Enter the number of driversn");
char d;
scanf("%d%c",&n, &d);
for (int i=1;i<=n;i++)
{
struct manager drivieri;
char arr1[50];
printf("nEnter the name of driver %dn",i);
gets(arr1);
strcpy(driveri.name, arr1);
printf("nn* * * * * * *n");
printf("The name of Driver %d is: %s",i,driveri.name);
printf("n* * * * * * *nn");
int a;
printf("nEnter the Driving license number of driver %dn",i);
scanf("%d",&a);
driveri.dln=a;
printf("nn* * * * * * *n");
printf("The driving license number of Driver %d is: %d",i,driveri.dln);
printf("n* * * * * * *nn");
char arr2[100];
printf("nEnter the route of driver %dn",i);
gets(arr2);
strcpy(driveri.route, arr2);
printf("n* * * * * * *n");
printf("The route of Driver %d is: %s",i,driveri.route);
printf("n* * * * * * *nn");
float b;
printf("nEnter the number of kilometers, driver %d have drivenn",i);
scanf("%f", &b);
driveri.kms=b;
printf("n* * * * * * *n");
printf("The Driver %d have driven %f kms.",i,driveri.kms);
printf("n* * * * * * *n");
}
return 0;
}

您尝试编译了吗?

Line 22:16: ‘driveri’ undeclared 

因此,声明是drivieri的,但您已将其用作driveri

只要更改声明就可以了。

最新更新