gpt4 book ai didi

c - 在 for 循环中使用结构的问题

转载 作者:行者123 更新时间:2023-11-30 16:00:59 25 4
gpt4 key购买 nike

这是一个家庭作业问题。我的编译器是CodeBlocks。

这是我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Address{
char number[5];
char street[30];
char city[30];
};

struct Employee{
char ID[7];
char name[31];
struct Address *addr;
};

int main(){
int n,i;
char temp[7];
printf("Enter number of Employee : ");
scanf("%d",&n);
struct Employee **p=(struct Employee **)malloc(n*sizeof(struct Employee *));

for (i=0; i<n; i++)
{
p[i]=(struct Employee *)malloc(sizeof(struct Employee));
p[i]->addr=(struct Address *)malloc(sizeof(struct Address));
}

for(i=0; i<n; i++)
{
printf("Employee #%d\n",i+1);
printf("Enter ID : ");
gets(p[i]->ID);
printf("Enter Name : ");
gets(p[i]->name);
printf("Enter Home number : ");
gets(p[i]->addr->number);
printf("Enter Street : ");
gets(p[i]->addr->street);
printf("Enter City : ");
gets(p[i]->addr->city);
}
}

我的问题是,当我运行此代码时,我无法输入#1 员工的 ID;不过,我可以输入员工 #2 和 #3 的 ID。

我的问题出在哪里?

最佳答案

在第一次循环之前,gets() 从控制台读取某些内容似乎存在一些问题。

在循环之前添加 gets(temp); 似乎可以修复它。更好的解决方案是使用 gets() 之外的其他方法。

关于c - 在 for 循环中使用结构的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7262476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com