Я пытаюсь создать программу, которая запрашивает имя пользователя и сумму, которую он должен компании.Проблема в том, что каждый раз, когда я пытаюсь скомпилировать программу, я получаю это предупреждение о том, что «пользователь не может быть инициализирован».Я не совсем уверен, что это значит.Любая помощь, чтобы понять, что я делаю не так?Спасибо!
#define END '\0'
#define LENGTH 20
struct info
{
char lastName[LENGTH];
float payment;
};
int customerS();
void accounts(struct info *userStart, int amount);
void changeNames(struct info *userStart, int amount);
void sort(struct info *userStart, int amount);
void results(struct info *userStart, int amount);
int main()
{
struct info *user;
int amount;
while((amount = customers()) != 0)
{
accounts(user, amount);
changeNames(user, amount);
sortNames(user, amount);
results(user, amount);
free(user);
}
return 0;
}
int customers()
{
int choice;
do
{
printf("\nHow many customers do you have (2 to 300, 0=quit): ",
scanf("%d", &choice);
}
while((choice < 2|| choice > 300) && choice != 0);
return choice;
}
void accounts(struct info *userStart, int amount)
{
struct info *user;
char *name[LENGTH];
float owed;
for(user = userStart; (user - userStart) < amount; user++)
{
scanf (" %s", name[LENGTH]);
getchar();
do
{
name[LENGTH] = getchar();
name[LENGTH]++;
}
while(!('\n'));
user->lastName[LENGTH + 1] = END;
scanf("%f", &owed);
user->payment = owed;
}
return;
}
void changeNames(struct info *userStart, int amount)
{
char *fast = &userStart->lastName[LENGTH],
*slow = &userStart->lastName[LENGTH];
if(tolower(*fast))
*slow++ = toupper(*fast);
while(*fast != END)
{
if(!isspace(*fast) || isalpha(*fast))
*slow++ = tolower(*fast);
fast++;
}
*slow = END;
return;
}
void sort(struct info *userStart, int amount)
{
struct info *user;
char *in,
*out,
temp;
for(out = user->lastName; (out - userStart->lastName) < amount; out++)
{
for(in = out + 1; (in - userStart->lastName) < amount; in++)
{
if(strcmp(user->lastName, userStart->lastName))
{
temp = *out;
*out = *in;
*in = temp;
}
}
}
return;
}
void results(struct info *userStart, int amount)
{
struct info *user;
printf("\nName: %s Payment: $%.2f", user->lastName, user->payment);
return;
}