#GSTTi 0 Denunciar post Postado Maio 10, 2011 Como colocar pra ele ler so os numeros pares? e pra contar quantos pares tem? #include <stdio.h> int main() { int vetor[4], i, menu=0, cont=0, contpar, aux; for (i = 0; i < 4; i++) { vetor[i] = 0; } for (i = 0; i < 4; i++) { printf ("\n Digite um numero: "); scanf ("%d",&vetor[i]); } while (menu != 9) { printf ("\n\n Escolha uma opçao:"); printf (" 1 - Numeros Pares "); printf (" 2 - Numeros Impares"); printf (" 3 - Numeros Negativos"); printf (" 4 - Maior e Menor"); printf (" 5 - Media dos Numeros Informados"); printf (" 6 - Ordem Inversa"); printf (" 7 - Numero Que Mais se Repetiu"); printf (" 8 - Ordem Crescente"); printf (" 9 - Sair"); printf ("\n "); scanf ("%d",&menu); switch(menu){ case 1: { cont = 0; while (cont < 4) { for (i = 0; i < (4 -1); i++ ) { if ((vetor[i] % 2)==0){ aux = vetor[i%2]; vetor[i] = vetor[i%2]; vetor[i] = aux; contpar++; } } cont++; } for (i = 0; i < 4; i++) { printf ("\n ---Os Numeros pares: %d", vetor[i]); } break; } case 3: { break; } default: { printf ("\n Digito não válido"); break; } } } } Compartilhar este post Link para o post Compartilhar em outros sites
Arieh Fabbro 0 Denunciar post Postado Maio 11, 2011 Bom, em primeiro lugar, recomendo fortemente você fazer aquela endentação no seu código, nunca ficaria 3 } no final de um código sem motivo, eles estão ali porque precisam e você precisa saber onde para e onde termina cada for, while, etc. Você pode ter conseguido fazer o programa compilar de primeira usando a lógica, porém quando você voltar no código depois de um tempo, você terá problemas para entendê-lo, imagine os outros. Aqui está o seu código com certas modificações #include <stdlib.h> #include <stdio.h> #include <windows.h> int main() { int vetor[4], i, menu=0;//Tirei algumas variáveis int pares[4], j;// pares[4] para armazenar os numeros pares for (i = 0; i < 4; i++) { vetor[i] = 0; } for (i = 0; i < 4; i++) { printf ("\n Digite um numero: "); scanf ("%d",&vetor[i]); } while (menu != 9) { system("cls"); printf ("\n\n Escolha uma opçao:\n"); printf (" 1 - Numeros Pares \n"); printf (" 2 - Numeros Impares\n"); printf (" 3 - Numeros Negativos\n"); printf (" 4 - Maior e Menor\n"); printf (" 5 - Media dos Numeros Informados\n"); printf (" 6 - Ordem Inversa\n"); printf (" 7 - Numero Que Mais se Repetiu\n"); printf (" 8 - Ordem Crescente\n"); printf (" 9 - Sair\n"); printf ("\n "); scanf ("%d",&menu); switch(menu) { case 1: { j=0; for (i = 0; i < 4; i++)//Varrer o vetor[i] { if ( (vetor[i]%2)==0)//Verifica se o número que está na posição i do vetor é par. { //Caso afirmativo, entra no if pares[j]=vetor[i];//Coloca o valor do vetor em outro vetor para depois mostrar os números pares j++;//Para saber quantos número tem no vetor } } } printf ("\n ---Os Numeros pares: "); for (i = 0; i < j; i++) //Um for para correr o vetor e imprimir cada número { printf ("%d ", pares[i]); } printf("\n"); system("pause");//Para a tela esperando uma tecla ser digitada, fiz isso para você ver os números pares. break; default: { printf ("\n Digito nao valido"); break; } } } } Compartilhar este post Link para o post Compartilhar em outros sites
#GSTTi 0 Denunciar post Postado Maio 12, 2011 Obrigado pela ajuda.. to tentando terminar ele inteiro, poderia me ajudar.. não consigo terminar!! #include <stdlib.h> #include <stdio.h> #include <windows.h> int main() { int vetor[20], i, menu=0; int pares[20], j; int impar[20], l; int negativo[20], m; int maior, menor,; float media,soma; int cont=0,aux; int repetidos,temp; for (i = 0; i < 20; i++) { vetor[i] = 0; } for (i = 0; i < 20; i++) { printf ("\n Digite um numero: "); scanf ("%d",&vetor[i]); } while (menu != 9) { system("cls"); printf ("\n\n Escolha uma opçao:\n"); printf (" 1 - Numeros Pares \n");// preciso que conte quantos sao os numeros pares printf (" 2 - Numeros Impares\n"); // preciso que conte quanto sao os numeros impares printf (" 3 - Numeros Negativos\n"); printf (" 4 - Maior e Menor\n"); //nao consigo fazer printf (" 5 - Media dos Numeros Informados\n"); printf (" 6 - Ordem Inversa\n"); //nao consigo fazer printf (" 7 - Numero Que Mais se Repetiu\n"); //nao consigo fazer printf (" 8 - Ordem Crescente\n"); // tenho duvidas se ta certo printf (" 9 - Sair\n"); printf ("\n "); scanf ("%d",&menu); switch(menu) { case 1://numeros pares { j=0; for (i = 0; i < 20; i++) { if ( (vetor[i]%2)==0) { pares[j]=vetor[i]; j++; } } } printf ("\n ---Os Numeros pares: "); for (i = 0; i < j; i++) { printf ("%d ", pares[i]); } printf("\n"); system("pause"); break; case 2: // Numeros Impares { l=0; for (i = 0; i < 20; i++) { if ( (vetor[i]%2)==1) { impar[l]=vetor[i]; l++; } } } printf ("\n ---Os Numeros impares: "); for (i = 0; i < l; i++) { printf ("%d ", impar[i]); } printf("\n"); system("pause"); break; case 3: // Numeros Negativos { m=0; for (i = 0; i < 20; i++) { if ( (vetor[i] < 0)) { negativo[m]=vetor[i]; m++; } } } printf ("\n ---Os Numeros Negativos: "); for (i = 0; i < m; i++) { printf ("%d ", negativo[i]); } printf("\n"); system("pause"); break; case 4: // Maior e Menor (Nao tá funcionando o Maior) { for (i = 0; i < 20; i++) { if (i==0) { maior = vetor[i]; menor = vetor[i]; } for(i=0;i<vetor[i];i++) { if(vetor[i]>maior) maior=vetor[i]; else { if (vetor[i]< menor) menor = vetor[i]; } } printf("O maior numero: %d\n",maior); printf("O menor numero: %d\n",menor); } } printf("\n"); system("pause"); break; case 5: // Media { for (i = 0; i < 20; i++) { soma=soma+vetor[i]; } { media=soma/20; } printf("A media dos valores informados: %.2f",media); } printf("\n"); system("pause"); break; case 8: { // Ordem Crescente cont = 0; while (cont < 20) { for (i = 0; i < (4 -1); i++ ) { if (vetor[i] > vetor[i+1]) { aux = vetor[i]; vetor[i] = vetor[i+1]; vetor[i+1] = aux; } } cont++; } for (i = 0; i < 20; i++) { printf ("\n ---Ordem Crescente: %d", vetor[i]); } printf("\n"); system("pause"); break; case 9://Sair do Programa { break; } default: { printf ("\n Digito nao valido"); break; } } } } } Compartilhar este post Link para o post Compartilhar em outros sites
Arieh Fabbro 0 Denunciar post Postado Maio 13, 2011 seguinte, vamos lá pra começar Para os casos números 1 e 2 ..... printf ("\n ---Os Numeros pares: "); for (i = 0; i < j; i++) { printf ("%d ", pares[i]); } printf("\n\t\t%d numeros pares",j); //Essa é a linha que você incluirá para mostrar quantos pares //a gente conta quantos números tem no vetor e coloca esse valor em j. //o mesmo vale para os números ímpares, no caso, a variável l. printf("\n"); system("pause"); ..... ..... case 4: // Maior e Menor { maior = vetor[0]; menor = vetor[0]; for(i=0;i < 20;i++)//Varrendo o vetor { if(vetor[i]>maior) { maior=vetor[i]; } else { if (vetor[i]< menor) { menor = vetor[i]; } } } printf("O maior numero: %d\n",maior); printf("O menor numero: %d\n",menor); } ..... Para o caso número 6, faça o varredura do vetor do fim até o começo, ou seja, for (i = 19; i >= 0; i--)//Como o vetor tem 20 posições, o última casa é 19, vetor começa em 0. Para o caso número 7, estou pensando sobre ele, no algoritmo que eu montei, se o número da primeira posição for o que repete mais, ele retorna um valor estranho, se você quiser pensar sobre ele, aqui está o código, depois eu penso mais um pouco Mais um detalhe, ele não informa se há mais de um número que se repete mais no vetor, por exemplo, no vetor há três números 4 e três números 5, ele mostra o primeiro número que pegar. case 7: //Número Que Mais se Repetiu { for (i=0;i<5;i++) { cont=0; for (j=0;j<5;j++) { if (vetor[i]==vetor[j]) { cont++; } } rep[i]=cont; } maior = rep[0]; for (i=0;i<5;i++) { if (rep[i]>maior) { maior=rep[i]; j=i; } } printf("Numero que repetiu mais foi o %d\n\n",vetor[j]); } system("pause"); Sobre o último caso, eu rodei o seu algoritmo e não rodou adequadamente, sugiro que você vá procurar "Algoritmos de ordenação", há vários deles, qualquer coisa, fala aí Compartilhar este post Link para o post Compartilhar em outros sites