lordqwerty Posted November 25, 2009 at 12:55 PM Report Share #297518 Posted November 25, 2009 at 12:55 PM Ola. Sou um grande iniciante nesta programaçao e precisava de uma ajuda. O enunciado do exercicio é o seguinte: Escreva um programa que leia um sequencia de numeros inteiros ate entrar 0 ou atingir um valor maximo de valores lidos, a especificar. Nesse momento o programa deve escrever a media, o maximo e o minimo dos numeros lidos. Este programa deve ser feito com um ciclo "while"... agradecia toda a vossa ajuda. Cumps ? Link to comment Share on other sites More sharing options...
softklin Posted November 25, 2009 at 01:23 PM Report Share #297522 Posted November 25, 2009 at 01:23 PM OK, o enunciado está aí. Agora tens dúvidas em que parte? Já tentaste fazer algum algoritmo (sem ser necessariamente em C), ou alguma ideia para resolver o problema? Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
lordqwerty Posted November 25, 2009 at 02:28 PM Author Report Share #297532 Posted November 25, 2009 at 02:28 PM Sim claro! O código que eu fiz ate agora é o seguinte: #include <stdio.h> #include <conio.h> main () { int lim, max, min, i, soma, num; float media; soma=0; media=0; i=0; printf("Limite: "); scanf("%d\n", &lim); while ((lim>=0)||(num==0)) { printf("Introduza o %d numero: ", ++i); scanf("%d\n", &num); soma=soma+num; printf("Soma: %d", soma); media=(float)soma/i; i++; lim--; } printf("Media: \n", media); getch(); } Ainda nao fiz o maximo nem o minimo porque ensinaram.me a fazer "por partes"... e a parte da media ainda nao funciona. Obrigado. Link to comment Share on other sites More sharing options...
softklin Posted November 25, 2009 at 03:09 PM Report Share #297538 Posted November 25, 2009 at 03:09 PM Apenas tens de calcular a média aritmética no fim de toda a introdução de dados, isto é, fora do ciclo. O máximo e mínimo, podes considerar usar o primeiro valor da sequência, e ir actualizando se outro número for maior que o máximo, ou menor que o mínimo actual, respectivamente. Estas interacções já têm de ser feitas dentro do teu ciclo. Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
lordqwerty Posted November 26, 2009 at 12:40 AM Author Report Share #297587 Posted November 26, 2009 at 12:40 AM Apenas tens de calcular a média aritmética no fim de toda a introdução de dados, isto é, fora do ciclo. Mas eu nao posso também ir actualizando a media dentro do ciclo? Porque a minha prof falou que dava, mas eu nao percebi muito bem. Cumps 😄 Link to comment Share on other sites More sharing options...
pedrosorio Posted November 26, 2009 at 12:46 AM Report Share #297588 Posted November 26, 2009 at 12:46 AM Mas eu nao posso também ir actualizando a media dentro do ciclo? Porque a minha prof falou que dava, mas eu nao percebi muito bem. Cumps 😄 Podes evidentemente. O que é a média de um conjunto de valores? É o somatório desses valores a dividir pelo número de valores. Então basta-te ir guardando o somatório dos valores e o número de valores lidos e no fim dividir esses valores. Não respondo a dúvidas por mensagem. Link to comment Share on other sites More sharing options...
Xpirito Posted December 5, 2009 at 11:53 PM Report Share #298869 Posted December 5, 2009 at 11:53 PM Não sou de postar aqui muito codigo pronto, mas acho que o exemplo que deste é grande para o que queres de resultado. aqui tens o teu codigo pronto e ainda se pode reduzir mais qualquer coisa. #include <stdio.h> #include <conio.h> main () { int lim, max, min, i, soma, num, inserido, totalinseridos; float media; soma=0; media=0; i=0; max = 0; printf("Limite: "); scanf("%d", &lim); min = 99999999; // inicias a variavel num numero demasiado alto para que o // utilizador insira um numero sempre mais baixo. // Acho uma solução errada, mas para iniciantes é optima. for (i=0; i<lim ; i++) { printf ("Insira um numero: \n"); scanf ("%d", &inserido); if ( inserido != 0) { soma = soma + inserido; // para fazer a soma total totalinseridos++; if (inserido >= max) { max = inserido; // para se saber o valor máximo } if ( inserido <= min) { min = inserido; } media = (soma / totalinseridos); //Para se saber a média } else break; } printf ("Soma: %d\n", soma); // Pode ser removido printf("Media: %f\n", media); printf("Valor Maximo: %d\n", max); printf ("Minimo Inserido: %d", min); getch(); } Para perguntas idiotas, respostas estúpidas! Link to comment Share on other sites More sharing options...
pedrosorio Posted December 6, 2009 at 12:11 AM Report Share #298875 Posted December 6, 2009 at 12:11 AM min = 99999999; // inicias a variavel num numero demasiado alto para que o // utilizador insira um numero sempre mais baixo. // Acho uma solução errada, mas para iniciantes é optima. Pois, só há mesmo uma solução melhor que essa para iniciantes, a correcta: Inicializar o valor mínimo e máximo com o primeiro valor que o utilizador inserir. Não respondo a dúvidas por mensagem. Link to comment Share on other sites More sharing options...
lordqwerty Posted December 6, 2009 at 03:54 AM Author Report Share #298889 Posted December 6, 2009 at 03:54 AM Muito obrigados pela ajuda. Ja funciona bem o programa. Fiquei esclarecido. 😉 Espero um dia destes poder discutir mais profundamente sobre esta linguagem. Cumps, 😞 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now