Ir ao conteúdo
  • Cadastre-se

Não consigo encontrar o erro do programa com função


lunalovegood

Posts recomendados

O exercício diz: Escreva uma função que recebe um vetor de reais x e inteiro n (0<n<=100) e devolve o índice do menor elemento do vetor x de n elementos.

Fiz o programa todo, ele compila certinho no DEV, mas não está funcionando corretamente e não estou encontrando o erro. Alguém pode ajudar?

Obrigada.


#include <stdio.h>
float vetor(int n, float x[n]){
int i, menor;
menor = x[0];
for (i=1; i<n; i++){
if (x[i]<menor){
menor=x[i];
return i;
}
}
}
void main(){
float x[100];
int n, i, menor;
printf ("Quantos elementos havera no vetor x? "); scanf ("%d", &n);
for (i=0; i<n; i++){
printf("x[%d]= ", i);
scanf("%d", &x[i]);
printf("\n");
}
i = vetor(n, x);
printf ("O menor elemento do vetor x é igual ao de indice %d.", i);
getchar();
getchar();
getchar();
}

Link para o comentário
Compartilhar em outros sites

provavel que seja seu retorno prematuro no if(quando ele acha o primeiro menor,ja sai do laço),mas o que nao ta funcionando exatamente?

outra coisa é

"float vetor(int n,int b[n])" isso compila em C?

O erro é que o índice retornado no final é sempre 0.

E sim, "float vetor(int n,int b[n])" está compilando normalmente aqui.

Na função vetor, no for, altere a atribuição da varável i (para i = 0).

E no scanf, como o vetor é float você deve usar "%f" e não "%d"

Fazendo essas alterações veja se funciona.

Muito obrigada! O erro era realmente o %d! Mudando somente isso o programa já está funcionando 100% certo! :lol:

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...