如何创建一个函数来消除结构数组c编程中的元素。我的作业是为诊所创建一个数据系统,用于存储患者的信息并删除诊所中已注册的患者。这是我的一些代码。
#include<stdio.h>
#include<string.h>
struct Client
{
char namec[30];
char sex[100];
char suggested_medication[200];
int age;
};
void showcliente(struct Client *itens,int s)
{
int l,op;
int num=s+1;
//不要担心num,每次cliente寄存器我都会返回 位置编号并加一个。
printf("enter position: ");
scanf("%i",&l);
for (l=0;l< num;l++) {
printf("name: %s \n", itens[l].namec);
printf("age : %i \n", itens[l].age);
printf("Sex : %s \n", itens[l].sex);
printf("Tipo de enfermidade %s \n", itens[l].suggested_medication);
printf("\n\n");
printf("**********************************");
}
getch();
system("cls");
}
main()
{
system("COLOR F9");
int n=-1,op;
struct Cliente* itens = malloc(40*sizeof(struct Cliente));
struct Cliente *funC(int i)
{
n=n+1;
printf(" patients name: ");
scanf(" %[^\t\n]s",&itens[n].namec);
printf(" age: ");
scanf("%i",&itens[n].age);
printf(" Sex: ");
scanf("%s",&itens[n].sex);
printf("suggested medication: ");
scanf(" %[^\t\n]s",&itens[n].suggested_medication);
system("pause");
system("cls");
return itens;
}
}
答案 0 :(得分:0)
从问题中可以清楚地看出,您需要动态创建所有客户端节点。并在需要时删除它们。或者甚至更好,您可以尝试从这些节点创建链接列表并根据需要进行管理。
因此,在回答这个问题时,最好的方法是根据需要分配内存然后使用它们。如果不需要客户的信息,您可以尝试删除它们。
您正在做的是一次分配40个左右的客户端。最好的方法是根据需要逐一进行。您可以使用malloc
动态分配内存,并使用free()
释放它们。另外,要阅读一行输入,您可能需要使用fgets()
。