Мне нужно добавить новую строку в существующий удар, где данные уже присутствуют, мне нужно добавить новое значение, используя определяемую пользователем функцию, но после выполнения функции добавления я отображаю застрявший, но не отображающий добавленный значение, показывающее только предыдущие значения, а не новое, которое добавляется. Пожалуйста, помогите мне сделать это:)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int n, i;
struct customer
{
char name[30];
char nationality[30];
int phoneno;
int mobileno;
char email[30];
int periodofstay;
int checkintime;
int checkouttime;
int noofroomsreq;
int noofoccupants;
};
void accept(struct customer[]);
void display(struct customer[]);
void search(struct customer[], char* m);
void add(struct customer[]);
Main
int main()
{
int a;
char m[100];
struct customer c1[30];
do
{
printf("\n1)FILL ARRAY\n");
printf("2)SEARCH BY NAME\n");
printf("3)PRINT ARRAY\n");
printf("4)Add Another\n");
printf("Search Operation:");
scanf("%d", &a);
switch (a)
{
case 1:
accept(c1);
break;
case 2:
printf("Enter Name to be searched");
scanf("%99s", m);
search(c1, m);
break;
case 3:
display(c1);
break;
case 4:
add(c1);
break;
case 5:
exit(0);
break;
default:
printf("Invalid Choice");
}
} while (a != 5);
return 0;
}
принять функцию, значение которой показывает только
void accept(struct customer c1[30])
{
printf("\n Enter no of customers");
scanf("%d", &n);
for (i = 0; i < n; i++)
{
printf("\nEnterNameofcustomers");
scanf("%29s", c1[i].name);
printf("\nEnterNationality");
scanf("%29s", c1[i].nationality);
printf("\nEnteremailid");
scanf("%29s", c1[i].email);
printf("\nEntermobileno");
scanf("%d", &c1[i].mobileno);
printf("\nPeriodofstay");
scanf("%d", &c1[i].periodofstay);
printf("\ncheckintime");
scanf("%d", &c1[i].checkintime);
printf("\ncheckouttime");
scanf("%d", &c1[i].checkouttime);
printf("\nroomsrequired");
scanf("%d", &c1[i].noofroomsreq);
printf("\nNoofoccupants");
scanf("%d", &c1[i].noofoccupants);
}
}
функция отображения
void display(struct customer c1[30])
{
printf("Customer record");
printf("\nName\tNationality\temailid\tmobileno\tPeriodofstay\tcheckintime\tcheckouttime\troomsrequired\tNoofoccupants\n");
for (int i = 0; i < n; i++)
{
printf("\n%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d", c1[i].name, c1[i].nationality, c1[i].email, c1[i].mobileno, c1[i].periodofstay, // extra & in c1[i].name
c1[i].checkintime, c1[i].checkouttime, c1[i].noofroomsreq, c1[i].noofoccupants);
}
}
это функция, которую мне нужно сделать, чтобы добавить новое значение, как добавление
void add(struct customer c1[30])
{
for (i = n; i < n + 1; i++)
{
printf("\nEnter Name of customers");
scanf("%29s", c1[i].name);
printf("\nEnter Nationality");
scanf("%29s", c1[i].nationality);
printf("\nEnter emailid");
scanf("%29s", c1[i].email);
printf("\nEnter mobileno");
scanf("%d", &c1[i].mobileno);
printf("\nPeriod of stay");
scanf("%d", &c1[i].periodofstay);
printf("\ncheckintime");
scanf("%d", &c1[i].checkintime);
printf("\ncheckouttime");
scanf("%d", &c1[i].checkouttime);
printf("\nroomsrequired");
scanf("%d", &c1[i].noofroomsreq);
printf("\nNoofoccupants");
scanf("%d", &c1[i].noofoccupants);
}
}