wFs 0 Denunciar post Postado Maio 15, 2006 #include <stdio.h>#include <conio.h>#define tam 5/* Após 5 numeros informados armazene-os em um Vetor . Crie um Menu com as seguintes opções: 1- Ordemcrescente; 2- Ordem Decrescente; 3- Sair.*/main(){ int vet[tam], i, menu=0, cont=0, aux; for (i = 0; i < tam; i++) { // Inicializa o vetor vet[i] = 0; } for (i = 0; i < tam; i++) { // Insere números no vetor printf ("\n Digite um numero: "); scanf ("%d",&vet[i]); } /* Menu de opções para o Case*/ printf ("\n Escolha uma opçao:"); printf ("\n 1 - Ordem Crescente"); printf ("\n 2 - Ordem Decrescente"); printf ("\n 3 - Sair"); switch(menu){ case 1: { // Ordem Crescente cont = -1; while (cont != 0) { cont = 0; for (i = 0; i < (tam -1); i++ ) { aux = vet[i]; vet[i] = vet[i+1]; vet[i+1] = aux; cont++; getch(); } } } case 2: { // Ordem decrescente cont = -1; while (cont != 0) { cont = 0; for (i = 0; i < (tam -1); i++ ) { aux = vet[i]; vet[i] = vet[i-1]; vet[i-1] = aux; cont++; getch(); } } } case 3: { // Opção de saída break; } default: { // Programação defensiva, caso não seja digitado nenhum número válido printf ("\n Digito não válido"); break; } } getch(); } Tipo tem dois erros ai. 1 deles eh quando aparece o Menu ele automaticamente aparece o default. O 2º erro é quando eu seleciono um dos numeros do Menu ele sai direto do programa, consequentemente não exibe o conteúdo do Menu. Alguem pode me ajudar com esse código? Compartilhar este post Link para o post Compartilhar em outros sites
RinaldFN 0 Denunciar post Postado Maio 15, 2006 Olá amigo td bem? Observei o seguinte no seu programa: 1º Você não precisa usar o for para inicializar o vetor, já que ele não esta recebendo ele mesmo como valor. Você só precisaria inicializar o vetor se acontece algo do tipo: vet=vet +1; 2ºDepois que você apresentou o menu de opções com o prinf você deveria usar um scanf para receber o valor da variavel menu. Por isso que switch está pegando o default, pois a variavel menu está vazia. Compartilhar este post Link para o post Compartilhar em outros sites
wFs 0 Denunciar post Postado Maio 17, 2006 #include <stdio.h>#include <conio.h>#define tam 5/* Após 5 numeros informados armazene-os em um Vetor . Crie um Menu com as seguintes opções: 1- Ordemcrescente; 2- Ordem Decrescente; 3- Sair.*/main(){ int vet[tam], i, menu=0, cont=0, aux; for (i = 0; i < tam; i++) { // Inicializa o vetor vet[i] = 0; } for (i = 0; i < tam; i++) { // Insere números no vetor printf ("\n Digite um numero: "); scanf ("%d",&vet[i]); } while (menu != 3) { /* Menu de opções para o Case*/ printf ("\n\n Escolha uma opçao:"); printf ("\n 1 - Ordem Crescente"); printf ("\n 2 - Ordem Decrescente"); printf ("\n 3 - Sair"); printf ("\n "); scanf ("%d",&menu); switch(menu){ case 1: { // Ordem Crescente cont = 0; while (cont < 5) { for (i = 0; i < (tam -1); i++ ) { if (vet[i] > vet[i+1]) { aux = vet[i]; vet[i] = vet[i+1]; vet[i+1] = aux; } } cont++; } for (i = 0; i < tam; i++) { printf ("\n ---Ordem Crescente: %d", vet[i]); } break; } case 2: { // Ordem decrescente cont = 0; while (cont < 5) { for (i = 0; i < (tam - 1); i++ ) { if (vet[i] < vet[i+1]) { aux = vet[i]; vet[i] = vet[i+1]; vet[i+1] = aux; } } cont++; } for (i = 0; i < tam; i++) { printf ("\n Ordem Decrescente: %d", vet[i]); } break; } case 3: { // Opção de saída break; } default: { // Programação defensiva, caso não seja digitado nenhum número válido printf ("\n Digito não válido"); break; } } } } cara consegui. Só estou com dificuldades quanto à Ordem Decrescente, que está imprimindo o mesmo que a ordem crescente. Dei uma aprimoradinha no programa. Vlws Achei jah o problema... estava no sinal de MAIOR e MENOR. Ordem crescente usa-se ">" e decrescente "<" ;) Compartilhar este post Link para o post Compartilhar em outros sites