0
もう一度ヘルプが必要です。ユーザーはdocreate()関数でいくつかの値を入力しています。これらの値をmain関数で元に戻す必要があります。私は試しましたが、目標を達成できませんでした。ユーザーがメインコードに2を入力したときに印刷するための無人機(名前)のただ1つの特性です。コードは以下の通りです:function()からmain()に構造体の値を戻す
#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);' - は何も有効な宣言ではありません。 –
これは無効です。do_create(int dronesCreated);以前は私は値を移動するためにそれを変更しましたが、それはとにかく動作しません。 –
配列は 'main'で定義されていなければなりません。関数の戻り値の型が 'void'の場合、値を返さないでください。 – BLUEPIXY