Започнах да правя една програма и искам в нея да включа или динамичен масив от структури, или свързан списък. Можете ли да ми кажете как точно става, защото съм страшно объркан. Кодът е на С, а не на С++. И как точно да реализирам функции за добавяне, изтриване на елемент, търсене по някакъв ключ?
Това, което следва, е една много груба чернова. В нея дори още не съм направил опит да заделям памет. Но ето я и нея. Защо след въвеждането на данните за първото пътуване не позволява да се въвежда нищо в полето first_stat?
- Код: Избери целия код
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#include <math.h>
struct Trip
{
char first_stat[50];
char last_stat[50];
char mid_stat[50];
char hour_leaving[10];
float price;
} Arr[5];
void createArr ()
{
int i;
for (i=0; i<5; i++)
{
printf ("%d trip \n \n", i+1);
printf ("First station: \n \n");
gets(Arr[i].first_stat);
printf ("\n \n");
printf ("Last station: \n \n");
gets(Arr[i].last_stat);
printf ("\n \n");
printf ("Through: \n \n");
gets(Arr[i].mid_stat);
printf ("\n \n");
printf ("Hour leaving: \n \n");
gets(Arr[i].hour_leaving);
printf ("\n \n");
printf ("Price: \n \n");
scanf ("%f", &Arr[i].price);
printf ("\n");
}
}
void print ()
{
int i;
for (i=0; i<5; i++)
{
printf ("From: %s \n", Arr[i].first_stat);
printf ("Through: %s \n", Arr[i].mid_stat);
printf ("To: %s \n", Arr[i].last_stat);
printf ("Hour leaving: %s \n", Arr[i].hour_leaving);
printf ("Price: %f \n", Arr[i].price);
for (int j=0; j<50; j++)
{
char ch = '-';
printf ("%c", ch);
}
printf ("\n");
}
}
int main ()
{
createArr ();
print ();
system ("pause");
return 0;
}

Меню