Ir ao conteúdo
  • Cadastre-se

Lucas Zottis

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

posts postados por Lucas Zottis

  1. Opa, eu sou meio novato em programação, mas meu problema é o seguinte.

    Eu coloquei uma condição para sair dos loops, onde eu tenho que inserir o "s" para sair, mas o problema é que mesmo eu tendo criado diferentes variáveis, uma para cada loop,

    ele sai dos loops como se fosse uma variável só, assim, ou saindo do loop principal, ou fica em loop infinito no case 3.

    Não sei se ficou bem claro, mas é isso.

    Se alguém puder ajudar, só agradeço.

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <locale.h>
    
    struct cad_livro{
    	int cod;
    	char tit [41];
    	char autor [41];
    	char area [41];
    	char ano [5]; 
    	char edit[41];
    };
    
    int main(){
    	setlocale(LC_ALL,"");
    	// Vetor de registros
    	struct cad_livro livro [20];
    	// Registro auxiliar para ordenação
    	struct cad_livro aux;
    	// "i1" = Índice 1; "i2" = Índice2; "op" = Opção; "cont" = Contagem de códigos; "n" = Número de busca de código; "busca" = Retorno de busca de código;
    	int i1,i2,op,cont,n,busca;
    	// "sair" = Sair dos loops menores; "sair_prog" = Sair do loop principal;
    	char sair_cad,sair_pes,sair_ord,sair_prog;
    	cont = 0;
    	do{
    		
    		printf("\n               =============== Menu ===============               \n");
    		printf("\n1 - Cadastrar livro");
    		printf("\n2 - Imprimir informações do livro");
    		printf("\n3 - Pesquisar livros por código");
    		printf("\n4 - Ordenar livros por ano");
    		printf("\n5 - Sair do programa\n\n\n");
    		printf("\nOpção: ");
    		scanf("%d",&op);
    		system("CLS");
    		fflush(stdin);
    		switch (op){
    			case 1:{
    				do{
    					printf("\n               =============== Cadastrar ===============               \n\n");
    					livro[cont].cod = cont;
    					printf("Título: ");
    					gets(livro[cont].tit);
    					printf("Autor: ");
    					gets(livro[cont].autor);
    					printf("Área: ");
    					gets(livro[cont].area);
    					printf("Ano: ");
    					gets(livro[cont].ano);
    					printf("Editora: ");
    					gets(livro[cont].edit);
    					cont++;
    					system("CLS");
    					printf("\n               =============== Cadastrar ===============               \n\n");
    					printf("Voltar para o menu [s/n]? ");
    					scanf("%c",&sair_cad);
    					system("CLS");
    					fflush(stdin);
    				}while(sair_cad != 's');
    				break;
    			}
    			case 2:{
    				printf("\n               =============== Imprimir ===============               \n");
    				for(i1 = 0; i1 < 20; i1++){
    					printf("\nCódigo: %d",livro[i1].cod);
    					printf("\nTítulo: %s",livro[i1].tit);
    					printf("\nAutor: %s",livro[i1].autor);
    					printf("\nÁrea: %s",livro[i1].area);
    					printf("\nAno: %s",livro[i1].ano);
    					printf("\nEditora: %s",livro[i1].edit);
    					printf("\n     -------------     \n");
    				}
    				break;
    			}
    			case 3:{
    				do{
    					printf("\n               =============== Pesquisar ===============               \n");
    					busca = 0;
    					printf("\nBuscar o código: ");
    					scanf("%d",&n);
    					for(i1 = 0; i1 < 20; i1++){
    						if(n == livro[i1].cod){
    							busca = 1;
    						}
    					}
    						if(busca == 1){
    							printf("\n\nCódigo: %d",livro[n].cod);
    							printf("\nTítulo: %s",livro[n].tit);
    							printf("\nAutor: %s",livro[n].autor);
    							printf("\nÁrea: %s",livro[n].area);
    							printf("\nAno: %s",livro[n].ano);
    							printf("\nEditora: %s",livro[n].edit);
    						}
    					else{
    						printf("Livro não cadastrado");
    					}
    					printf("Fazer nova pesquisa [s/n]? ");
    					scanf("%c",&sair_pes);
    				}while(sair_pes != 's');
    				break;
    			}
    			case 4:{
    				printf("\n               =============== Ordernar ===============               \n");
    				for(i1 = 0; i1 > 20; i1++){
    					for(i2 = i1+1; i1 > 20; i2++){
    						if(livro[i1].ano > livro[i2].ano){
    							aux = livro[i1];
    							livro[i1] = livro[i2];
    							livro[i2] = aux;
    						}
    					}
    				}
    				break;
    			}
    			case 5:{
    				printf("Deseja sair[s/n]? ");
    				scanf("%c",&sair_prog);
    				system("CLS");
    				if(sair_prog == 's'){
    					printf("Saindo... Tchau!!");
    				}
    				break;
    			}
    		}
    	}while (sair_prog != 's');
    	return(0);
    }

     

    • Curtir 1

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!