PsySc0rpi0n Posted March 4, 2013 at 03:14 PM Report #497852 Posted March 4, 2013 at 03:14 PM (edited) Boas. Estou a usar um vector para armazenar números mas quando tnto fazer um printf deles, aparece o típico lixo da memória. Não estou a perceber porquê. . . #include <stdio.h> #define MAX 10 int main(void) { int numeros[MAX]; int i, zeros = 0, soma = 0; float media = 0.0; printf("Introduza 1000 números inteiros:\n"); for (i = 0; i < MAX; i++) scanf("%f", &numeros); for (i = 0; i < MAX; i++) { if (numeros [i] == 0) zeros++; } for (i = 0; i < MAX; i++) { soma += numeros; printf("soma %d = %d\n", i, soma); printf("numero %d = %d\n", i, numeros); } media = soma / MAX; printf ("A média dos números introduzidos é %.2f e o número de zeros introduzidos é %d!\n", media, zeros); getchar(); return 0; } Edited March 4, 2013 at 03:51 PM by PsySc0rpi0n geshi fail :D Kurt Cobain - Grunge misses you Nissan GT-R - beast killer
HappyHippyHippo Posted March 4, 2013 at 03:31 PM Report #497853 Posted March 4, 2013 at 03:31 PM antes de mais, aumenta o nível de warnings do compilador e tenta corrigir todas as mensagens que te aparecem #include <stdio.h> #define MAX 10 int main(void) { int numeros[MAX]; int i, zeros = 0, soma = 0; float media = 0.0; printf("Introduza 1000 números inteiros:\n"); for (i = 0; i < MAX; i++) scanf("%f", &numeros[i]); // numeros é um array de inteiros e estás a dizer para ler um float for (i = 0; i < MAX; i++) { if (numeros[i] == 0) zeros++; } for (i = 0; i < MAX; i++) { soma += numeros[i]; printf("soma %d = %d\n", i, soma); printf("numero %d = %d\n", i, numeros[i]); } media = soma / MAX; // isto é a divisão inteira, nunca terás um valor com casas decimais sem um cast expelícito printf ("A média dos números introduzidos é %.2f e o número de zeros introduzidos é %d!\n", media, zeros); getchar(); return 0; } IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
PsySc0rpi0n Posted March 4, 2013 at 03:50 PM Author Report #497859 Posted March 4, 2013 at 03:50 PM (edited) Acho que não tenho acesso a mais ou menos warnings porque estou no smartphone (Android) . Onde comentaste, não percebi. A divisão inteira não é o % ? ? ? Ali estou a dividir a soma dos números inseridos no vector pelo tamanho o vector... O problema está nos valores que ficam guardados no vector (estou a verificar nos dois printfs que fiz... edited; Ok, vou ver a situa ção do tipo das variáveis. . . Deve ser isso. edited; Era isso mesmo. O resto está bom... Thanks Edited March 4, 2013 at 04:01 PM by PsySc0rpi0n Kurt Cobain - Grunge misses you Nissan GT-R - beast killer
HappyHippyHippo Posted March 4, 2013 at 04:03 PM Report #497861 Posted March 4, 2013 at 04:03 PM o operador "%" é o resto da divisão inteira. a divisão inteira é o uso do operador "/" sobre dois números inteiros. int a = 23, b = 10; double resultado = 0.0; resultado = a / b; // resultado irá ficar com o valor de 2.0 e não 2.3 !!! resultado = (double)a / b; // agora sim, resultado fica com 2.3 IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
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