Olá, senhores (as)
sou sprendiz de C e no código abaixo gostaria de saber como fazer para que sempre que o usuário desejar executar as opção 1 ou 2 (exceto 0), o programa deve realizar executar o solicitado e, logo após isso, o programa deve retornar ao menu, dando ao usuário a possibilidade de executar novamente alguma das opções listadas no menu. A outra coisa seria como reportar uma msg de erro caso digite um valor diferente de 1,2 ou 0.
#include <stdio.h>
#include <stdlib.h>
#define TAM 05
struct livro
{
int codigo;
char autor[30];
char titulo[50];
char editora[30];
};
int main()
{
struct livro ficha[TAM];
int busca, i, j, acha, op;
op = 0;
while (op !=5)
{
printf("1 - Inserir um Novo Cadastro\n");
printf("2 - Mostrar todos os cadastros\n");
printf("0 - Encerrar\n");
printf("Digite a opção desejada: ");
scanf("%d", &op);
fflush(stdin);
if (op == 1)
{
system("cls");
for (i=0; i<TAM; i++)
{
printf("Digite o cádigo do livro da posição %d:", i+1 );
scanf("%d", &ficha.codigo);
fflush(stdin);
printf("Digite o título do livro: ");
scanf("%50[^\n]s", &ficha.titulo);
fflush(stdin);
printf("Digite o nome do autor: ");
scanf("%30[^\n]s", &ficha.autor);
fflush(stdin);
printf("Digite o nome da editora: ");
scanf("%30[^\n]s", &ficha.editora);
fflush(stdin);
}
}
else
{
if (op == 2)
{
system("cls");
for (i=0; i<TAM; i++)
{
printf("\nCÓDIGO: %d\n",
ficha.codigo );
printf("TÍTULO: %s\n",
ficha.titulo);
printf("AUTOR: %s\n",
ficha.autor);
/*printf("ÁREA: %s\n", ficha.area);*/
/*printf("ANO: %d\n", ficha.ano);*/
printf("EDITORA: %s\n\n",
ficha.editora);
}
}
else
{
if (op == 3)
{
system("cls");
printf("Digite o código que deseja buscar: ");
scanf ("%d", &busca);
i = 0;
acha = 0;
while ((i < TAM) && (acha == 0))
{
if (ficha.codigo == busca)
acha = 1;
else
i++;
}
if (acha == 1)
{
printf("\nCÓDIGO: %d\n",
ficha.codigo );
printf("TÍTULO: %s\n",
ficha.titulo);
printf("AUTOR: %s\n",
ficha.autor);
printf("EDITORA: %s\n\n",
ficha.editora);
}
else
printf("\n Registro não encontrado");
}
else
{
if (op ==4)
{
system("cls");
for (i=0;i<TAM-1;i++)
{
for (j=i+1;j<TAM;j++)
{
{
ficha = ficha[j];
}
}
}
for (i=0;i<TAM;i++)
{
printf("\n CÓDIGO: %d, TÍTULO:%s\n\n",
ficha.codigo,
ficha.titulo);
}
}
}
}
}
return (0);
}
}