Pular para o conteúdo

Duvida em Codigo C [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Duvida em Codigo C [RESOLVIDO]

Enviado em 28/11/2018 - 19:55h

Boa Tarde,
Alguem pode me ajudar a identificar onde esta o erro no código. Por alguma razão ele não esta armazenando os valores digitados no vetor.

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main(){
double *vet, maior=0, menor=0, media=0;
int tamanho,a=0;

printf("\nDigite o tamanho do vetor: ");
scanf("%d", &tamanho);

vet = (double*) calloc (tamanho,sizeof(double));


for(int i=0; i<tamanho; i++){
printf("\nDigite um valor: ");
scanf("%.2f", &vet[i]);fflush(stdin);
media += vet[i];
printf("\n\nValor: %f", vet[i]);
printf("\nMedia: %f", media);
}
vet[0]=5.6;
printf("\nvet[o]: %f", vet[0]);

menor = vet[0];
maior = vet[0];
for(int i=0; i<tamanho; i++){
if (maior < vet[i]){
maior = vet[i];
}
if (menor > vet[i]){
menor = vet[i];
}
}

printf("\nO maior valor do vetor é: %f O menor valor é: %f e a média dos valores é: %f", maior, menor, media/tamanho);

free(vet);

}

Responder tópico

2. Re: Duvida em Codigo C [RESOLVIDO]

Melhor resposta

Enviado em 29/11/2018 - 00:00h

jussim escreveu:

Boa Tarde,
Alguem pode me ajudar a identificar onde esta o erro no código. Por alguma razão ele não esta armazenando os valores digitados no vetor.

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main(){
double *vet, maior=0, menor=0, media=0;
int tamanho,a=0;

printf("\nDigite o tamanho do vetor: ");
scanf("%d", &tamanho);

vet = (double*) calloc (tamanho,sizeof(double));


for(int i=0; i<tamanho; i++){
printf("\nDigite um valor: ");
scanf("%.2f", &vet[i]);fflush(stdin);
media += vet[i];
printf("\n\nValor: %f", vet[i]);
printf("\nMedia: %f", media);
}
vet[0]=5.6;
printf("\nvet[o]: %f", vet[0]);

menor = vet[0];
maior = vet[0];
for(int i=0; i<tamanho; i++){
if (maior < vet[i]){
maior = vet[i];
}
if (menor > vet[i]){
menor = vet[i];
}
}

printf("\nO maior valor do vetor é: %f O menor valor é: %f e a média dos valores é: %f", maior, menor, media/tamanho);

free(vet);

}

Olá, tudo bem?
Não li o seu código todo, to com um pouco de sono e cansado, e não sou nenhum expert, posso estar falando abobrinha, mas não custa tentar rsrs

Mas o seu scanf () você está lendo um tipo double com %f para ler o tipo double se usa %lf, tenta ai, e ve se dá certo.
OBS: pra imprimir o tipo double, use %lf também.

E tome um pouco de cuidado com o uso de fflush(stdin); isso não é muito bem visto no meio profissional.

3. Re: Duvida em Codigo C [RESOLVIDO]

Enviado em 28/11/2018 - 23:45h

Veja se resolve se você tirar aquela tentativa de limitar o número de casas decimais na chamada a scanf().

4. Re: Duvida em Codigo C [RESOLVIDO]

Enviado em 28/11/2018 - 23:56h

Ja havia tentado e o erro persiste

5. Re: Duvida em Codigo C [RESOLVIDO]

Enviado em 29/11/2018 - 00:13h

Era isso mesmo parceiro. Muito obrigado!! Me ajudou bastante. Agora esta exibindo corretamente a msgm. Com excessao de Menor que esta valendo 0. Isso eu não entendi. até nessa linha:
maior = vet[0];
menor = maior;

menor continua valendo 0 depois disso, enquanto maior assumo o valor do primeiro elemento do vetor

6. Re: Duvida em Codigo C [RESOLVIDO]

Enviado em 29/11/2018 - 00:32h

Esqueçe o que eu disse, encontrei o erro. Estava em uma modificação que fiz para testar se os valores estavam entrando no vetor!

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder