Duvida em Codigo C [RESOLVIDO]

1. Duvida em Codigo C [RESOLVIDO]

william jussim
jussim

(usa Ubuntu)

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);

}



  


2. MELHOR RESPOSTA

João Paulo
princknoby

(usa Arch Linux)

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]

Paulo
paulo1205

(usa Ubuntu)

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]

william jussim
jussim

(usa Ubuntu)

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

Ja havia tentado e o erro persiste


5. Re: Duvida em Codigo C [RESOLVIDO]

william jussim
jussim

(usa Ubuntu)

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]

william jussim
jussim

(usa Ubuntu)

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!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts