Pedro Dinis Postado Junho 7, 2017 Denunciar Share Postado Junho 7, 2017 O meu programa compila mas sai tudo errado.. ajudem.. #include <stdio.h> #include <stdlib.h> #include <time.h> main() { int vet[100],p,i; srand(time(NULL)); for(i=0;i<10;i++){ vet[i]=rand()%101; } int op; int max,min; float media = 0; int soma; menu: printf("1- Maximo numero\n"); printf("2- Minimo numero\n"); printf("3- Soma\n"); printf("4- Media\n"); printf("5- Numeros acima da media\n"); printf("6- Pares\n"); printf("7- Impares\n"); printf("8- Sair\n"); scanf("%d",&op); switch(op){ case 1: max=vet[0]; int i; for(i=1;vet[i];i++){ if (vet[i] > max) max = vet[i]; } printf("O Numero maximo do vetor e: %d \n",max); goto menu; case 2: min=vet[0]; int c; for(c=1;c<100;c++){ if (vet[i] < max) min = vet[i]; } printf("O Numero minimo do vetor e: %d \n",min); goto menu; case 3: for (i=0;i<100;i++) { soma = soma + vet[i]; printf("A soma dos numeros e: %d \n",soma); } goto menu; case 4: media = soma/100; printf("A media e: %d \n",media); goto menu; case 5: { if (vet[i] > media){ printf("Estao %d numeros acima da media \n"); goto menu; } case 6: if(vet[i]%2==0) { printf("Numeros Pares: %d \n",vet[i]); goto menu; } case 7: if(vet[i]%2 != 0) { printf("Numeros Impares: %d \n",vet[i]); goto menu; } case 8:break; default: printf("Valor introduzido não esta na lista\n"); goto menu; } } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nefisto Postado Junho 7, 2017 Denunciar Share Postado Junho 7, 2017 #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int vet[100],p,i; srand(time(NULL)); for(i=0;i<100;i++){ // aki tem q ser de 0 a 100 vet[i]=rand()%101; } int op; int max,min; float media = 0; int soma = 0; menu: printf("1- Maximo numero\n"); printf("2- Minimo numero\n"); printf("3- Soma\n"); printf("4- Media\n"); printf("5- Numeros acima da media\n"); printf("6- Pares\n"); printf("7- Impares\n"); printf("8- Sair\n"); scanf("%d",&op); switch(op){ case 1: max=vet[0]; int i; for(i=1; i < 100;i++) // não intendi porque você colocou vet[i] { if (vet[i] > max) max = vet[i]; } printf("O Numero maximo do vetor e: %d \n",max); goto menu; // não USE GOTO case 2: min=vet[0]; int c;//não é nescessario criar variaveis diferentes, podia ter reusado o 'i' for(c=1;c<100;c++) { if (vet[c] < max)//como você copiou da de cima e la é o 'i', aki ia da errado min = vet[c]; } printf("O Numero minimo do vetor e: %d \n",min); goto menu;// não USE GOTO case 3: for (i=0;i<100;i++) { soma = soma + vet[i]; // soma não é iniciada, então ela comeca com lixo de memoria printf("A soma dos numeros e: %d \n",soma); } soma = 0;//Reiniciar a soma quando acabar goto menu; // não USE GOTO case 4: for (i=0;i<100;i++)//inclui uma somatoria soma += vet[i]; media = soma/100.0;//sua media só funciona se você usar depois da SOMA, elas devem ser independentes //a divisao de um int(soma) com outro int (100), resulta em um int e você perde o decimal, transforme um deles em float printf("A media e: %.2f \n",media);// media é um float, e você ta printando com %d soma = 0; goto menu;// não USE GOTO case 5: { //essa parte você nem tentou... for (i=0;i<100;i++) soma += vet[i]; media = soma/100.0; for(i = 0, c = 0; i < 100; i++) if (vet[i] > (int)media) c++; printf("Estao %d numeros acima da media \n", c); soma = 0; media = 0; goto menu; // não USE GOTO case 6: //essa parte você também não tentou printf("Numeros Pares: \n"); for(i = 0; i < 100; i++) if(vet[i]%2==0) printf("%d \n",vet[i]); goto menu;// não USE GOTO case 7: //essa também não printf("Numeros Impares: \n"); for(i = 0; i < 100; i++) if(vet[i]%2==1) printf("%d \n",vet[i]); goto menu;// não USE GOTO case 8:break; default: printf("Valor introduzido não esta na lista\n"); goto menu;// não USE GOTO } } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Junho 7, 2017 Denunciar Share Postado Junho 7, 2017 Quem lhe ensinou usar goto? Te está roubando o money >_< Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lucasaranha Postado Junho 9, 2017 Denunciar Share Postado Junho 9, 2017 Em 6/7/2017 at 13:16, Nefisto disse: #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int vet[100],p,i; srand(time(NULL)); for(i=0;i<100;i++){ // aki tem q ser de 0 a 100 vet[i]=rand()%101; } int op; int max,min; float media = 0; int soma = 0; menu: printf("1- Maximo numero\n"); printf("2- Minimo numero\n"); printf("3- Soma\n"); printf("4- Media\n"); printf("5- Numeros acima da media\n"); printf("6- Pares\n"); printf("7- Impares\n"); printf("8- Sair\n"); scanf("%d",&op); switch(op){ case 1: max=vet[0]; int i; for(i=1; i < 100;i++) // não intendi porque você colocou vet[i] { if (vet[i] > max) max = vet[i]; } printf("O Numero maximo do vetor e: %d \n",max); goto menu; // não USE GOTO case 2: min=vet[0]; int c;//não é nescessario criar variaveis diferentes, podia ter reusado o 'i' for(c=1;c<100;c++) { if (vet[c] < max)//como você copiou da de cima e la é o 'i', aki ia da errado min = vet[c]; } printf("O Numero minimo do vetor e: %d \n",min); goto menu;// não USE GOTO case 3: for (i=0;i<100;i++) { soma = soma + vet[i]; // soma não é iniciada, então ela comeca com lixo de memoria printf("A soma dos numeros e: %d \n",soma); } soma = 0;//Reiniciar a soma quando acabar goto menu; // não USE GOTO case 4: for (i=0;i<100;i++)//inclui uma somatoria soma += vet[i]; media = soma/100.0;//sua media só funciona se você usar depois da SOMA, elas devem ser independentes //a divisao de um int(soma) com outro int (100), resulta em um int e você perde o decimal, transforme um deles em float printf("A media e: %.2f \n",media);// media é um float, e você ta printando com %d soma = 0; goto menu;// não USE GOTO case 5: { //essa parte você nem tentou... for (i=0;i<100;i++) soma += vet[i]; media = soma/100.0; for(i = 0, c = 0; i < 100; i++) if (vet[i] > (int)media) c++; printf("Estao %d numeros acima da media \n", c); soma = 0; media = 0; goto menu; // não USE GOTO case 6: //essa parte você também não tentou printf("Numeros Pares: \n"); for(i = 0; i < 100; i++) if(vet[i]%2==0) printf("%d \n",vet[i]); goto menu;// não USE GOTO case 7: //essa também não printf("Numeros Impares: \n"); for(i = 0; i < 100; i++) if(vet[i]%2==1) printf("%d \n",vet[i]); goto menu;// não USE GOTO case 8:break; default: printf("Valor introduzido não esta na lista\n"); goto menu;// não USE GOTO } } } Em quais casos encontra erro? Todos? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pedro Dinis Postado Junho 12, 2017 Autor Denunciar Share Postado Junho 12, 2017 Em 7 de junho de 2017 at 17:16, Nefisto disse: #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int vet[100],p,i; srand(time(NULL)); for(i=0;i<100;i++){ // aki tem q ser de 0 a 100 vet[i]=rand()%101; } int op; int max,min; float media = 0; int soma = 0; menu: printf("1- Maximo numero\n"); printf("2- Minimo numero\n"); printf("3- Soma\n"); printf("4- Media\n"); printf("5- Numeros acima da media\n"); printf("6- Pares\n"); printf("7- Impares\n"); printf("8- Sair\n"); scanf("%d",&op); switch(op){ case 1: max=vet[0]; int i; for(i=1; i < 100;i++) // não intendi porque você colocou vet[i] { if (vet[i] > max) max = vet[i]; } printf("O Numero maximo do vetor e: %d \n",max); goto menu; // não USE GOTO case 2: min=vet[0]; int c;//não é nescessario criar variaveis diferentes, podia ter reusado o 'i' for(c=1;c<100;c++) { if (vet[c] < max)//como você copiou da de cima e la é o 'i', aki ia da errado min = vet[c]; } printf("O Numero minimo do vetor e: %d \n",min); goto menu;// não USE GOTO case 3: for (i=0;i<100;i++) { soma = soma + vet[i]; // soma não é iniciada, então ela comeca com lixo de memoria printf("A soma dos numeros e: %d \n",soma); } soma = 0;//Reiniciar a soma quando acabar goto menu; // não USE GOTO case 4: for (i=0;i<100;i++)//inclui uma somatoria soma += vet[i]; media = soma/100.0;//sua media só funciona se você usar depois da SOMA, elas devem ser independentes //a divisao de um int(soma) com outro int (100), resulta em um int e você perde o decimal, transforme um deles em float printf("A media e: %.2f \n",media);// media é um float, e você ta printando com %d soma = 0; goto menu;// não USE GOTO case 5: { //essa parte você nem tentou... for (i=0;i<100;i++) soma += vet[i]; media = soma/100.0; for(i = 0, c = 0; i < 100; i++) if (vet[i] > (int)media) c++; printf("Estao %d numeros acima da media \n", c); soma = 0; media = 0; goto menu; // não USE GOTO case 6: //essa parte você também não tentou printf("Numeros Pares: \n"); for(i = 0; i < 100; i++) if(vet[i]%2==0) printf("%d \n",vet[i]); goto menu;// não USE GOTO case 7: //essa também não printf("Numeros Impares: \n"); for(i = 0; i < 100; i++) if(vet[i]%2==1) printf("%d \n",vet[i]); goto menu;// não USE GOTO case 8:break; default: printf("Valor introduzido não esta na lista\n"); goto menu;// não USE GOTO } } } porque q não posso usar goto??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Junho 12, 2017 Denunciar Share Postado Junho 12, 2017 7 horas atrás, Pedro Dinis disse: porque q não posso usar goto??? Não existe nenhuma norma que regule isso, porem seu chefe pode lhe despedir se pegar muitos gotos. https://es.wikipedia.org/wiki/Código_espagueti Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Pedro Dinis
O meu programa compila mas sai tudo errado.. ajudem..
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.