Вот мой код. Мне нужно, чтобы пользователь вводил больше полей, а не только val. Это всего лишь код, который я использую для проверки списков, поэтому, например, я хочу, чтобы пользователь добавил val, имя и фамилию. Как мне это сделать? Некоторые термины не написаны на английском языке, но я думаю, что общая часть кода понятна.Как добавить еще поле в список
#include <stdio.h>
#include <stdlib.h>
struct lista{
int val;
struct lista *next;
}Lista;
struct lista* crea(struct lista* head);
void stampa(struct lista* testa);
int main()
{
struct lista *head=NULL;
int insert=0;
while(1){
printf("\n *** MENU ***\n 1.Add in list\n 2.Print\n 3.Exit\n\n Input: ");
scanf("%d", &insert);
switch(insert){
case 1:
head = crea(head);
break;
case 2:
stampa(head);
break;
case 3:
exit(1);
default:
printf("\n Errore: scelta non valida!\n");
break;
}
}
return 0;
}
struct lista* crea(struct lista* head){
struct lista *nuovo=NULL; //sarà la nuova head
int valore=0;
nuovo = (struct lista*)malloc(sizeof(struct lista));
printf("\nValue: ");
scanf("%d", &valore);
nuovo->val=valore;
nuovo->next=head;
head = nuovo;
return nuovo;
};
void stampa(struct lista* head){
struct lista* temp=NULL;
temp = head;
while(temp != NULL){
printf("\nvalore: %d\n", temp->val);
temp = temp->next;
}
}
Просто добавьте поля и дайте пользователям ввести данные для них. – MikeCAT
Я сделал, и он разбился. Может быть, это был не правильный способ (?) – ennedes
показать код, который разбился - тогда мы можем сказать, почему. Также скажите, что произошло, и что вы запустили его под отладчиком и попытались исправить его самостоятельно. – pm100