Besoin d'aide à nouveau. L'utilisateur entre des valeurs dans la fonction docreate() et j'ai besoin de ces valeurs dans la fonction principale pour les imprimer. J'ai essayé mais incapable d'atteindre l'objectif. J'ai juste une caractéristique du drone (nom) pour l'instant pour imprimer quand l'utilisateur entre 2 dans le code principal. Le code est ci-dessous:Conserver les valeurs de structure dans main() à partir de function()
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
struct drone_t{
char name[30];
float top_s;
float acc;
};
struct do_create(int dronesCreated);
#define MAXDRONES 3
int main()
{
struct drone_t drone;
int dronesCreated = 0;
int i;
char namee;
while(1)
{
printf("1. Create Drone\n2. Calculate Time\n3. Exit\n");
scanf("%d", &i);
if (i == 1)
{
if(dronesCreated<=MAXDRONES-1)
{
dronesCreated++;
do_create(dronesCreated);
}
else
{
printf("error: cannot create more drones\n");
}
}
else if (i == 2)
{
printf("%s", drone[dronesCreated].name);
}
else if (i == 3)
{
exit(EXIT_SUCCESS);
}
else
{
printf("error: select an option between 1 and 3\n");
}
}
}
void do_create(int dronesCreated)
{
struct drone_t drone[dronesCreated];
printf("What is the name of the drone?\n");
scanf("%s", drone[dronesCreated].name);
printf("What is the top speed of the drone? (kmph)\n");
scanf("%f", &drone[dronesCreated].top_s);
printf("What is the acceleration of the drone? (mpsps)\n");
scanf("%f", &drone[dronesCreated].acc);
return drone.name;
}
'struct do_create (int dronesCreated);' - n'est une déclaration valide de rien. –
il était vide do_create (int dronesCreated); précédemment. Je l'ai changé pour déplacer les valeurs mais ça ne marche pas de toute façon. –
Le tableau doit être défini dans 'main'. Si le type de retour de la fonction est 'void', il ne doit pas renvoyer de valeur. – BLUEPIXY