Listas Encadeadas em C

Carambra continua dando erro, agora o problema é no main

[code]#include <stdio.h>

#include <stdlib.h>

struct Lista{

char nome[51];

char Tcomida[31];

float nota;

char endereco[61];

Lista *prox;

}typedef item;

int main(void) // Erro: In function `int main()’:
{

int i, qtd;

printf ("\t\tCADASTRO DE RESTAURANTES\n\n");

printf (“Entre com a quantidade de restaurantes que deseja cadastrar: “);
scanf (”%d”, &qtd);
printf ("\n");

for (i = 0; i < qtd; i++)

{

printf ("Entre com o nome do Restaurante %d: ", i+1);
fgets (item.nome,51,stdin);

printf ("Entre com o Endereco: ");
fgets (item.endereco,61,stdin);

printf ("Entre com o tipo de comida que deseja: ");
fgets (item.Tcomida,31,stdin);

do{
      
 printf ("Entre com uma nota de avaliacao para a cozinha [0,5]: ");
 scanf ("%f",&item.nota);

} while (item.nota<0||item.nota>5);

printf ("\n");

}

system (“PAUSE”);

return (0);
}

//FUNÇÃO CRIA LISTA VAZIA
item* lst_cria (void)

{

return NULL;

}

[/code]

Você declarou errado sua estrutura. Veja as mensagens anteriores para saber como é a sintaxe.
Além disso, mesmo que estivesse certa, você esqueceu de declarar a variável da estrutura. As mensagens anteriores falam como fazer isso também.
Boa sorte :wink:

Ñ estou identificando onde está o erro, eu declarei item que é a variável da struct :roll: :oops:

[code]struct Lista{

char nome[51];

char Tcomida[31];

float nota;

char endereco[61];

Lista *prox;

}typedef item;

[/code]

O typedef é no começo:

typedef struct Lista{
   char nome[51];
   char Tcomida[31];
   float nota;
   char endereco[61];
   struct Lista *prox;
} item;

Mas isso é no caso de estar trabalhando com listas, pq já fiz algums exercícios de strcut e ñ colocava no começo!! :roll:

Uma outra opção, que é a que você pode estar tentando usar é essa:

struct Lista{
    char nome[51];
    char Tcomida[31];
    float nota;
    char endereco[61];
    struct Lista *prox;
 };

typedef struct Lista item;

Eu já tentei assim também, mas dá o seguinte erro:

[code]struct Lista{

char nome[51];

char Tcomida[31];

float nota;

char endereco[61];

Lista *prox;

}typedef struct Lista item; erro:two or more data types in declaration of `item’
[/code]

O erro era por conta da vírgula que é antes do typedef.

Agora tá dando erro no main

int main()

O erros são esses:

1 - expected init-declarator before “int”

2 -expected ,' or;’ before “int”

Acho que é alguma coisa com esse fgets também, pq tá dando erro em todas as linhas onde ele está!

o problema deve ser essa variavel sua
stdin
nao está declarada

Já achou o erro? :wink:
Você não declarou a variável item. Só que você vai ter que mudar de nome, já que, com seu typedef, item agora é um tipo (como int, double e struct Lista)
Simplesmente declare, dentro da main a variável:
item umItem;
e use-a onde aparece o item, por exemplo:
fgets (item.nome,51,stdin);
vira
fgets (umItem.nome,51,stdin);