Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com funções


Fernando Ribeiro

Pergunta

Olá, sou novo no universo da programa e também aqui no forum, comecei a estudar C a uns seis meses e agora estou em funções, lembro de minha professora ter feito um codigo de forma similar a este que estou submetendo, porem o meu ao executalo nada acontece, suspeito de o problema de ser na declaração das funções dentro do main(), já tentei tirar os "int's" e "void's" (somente dentro do main), mas mesmo assim, nada acontece, a situação só ficou pior

Desde já obrigado

ps.: nem um erro é apontado pelo compilador geany no codigo da forma que esta sendo postado

pps.: formatação do texto foi perdida na postagem

	#include <stdio.h>
	void imprimeVet(int vet1[5]);
void lerVet(int vet1[5]);
int somaVet(int vet1[5]);
int mediaVet(int somaVet);
void subNegativos(int vet1[5]);
void subRepitidos(int vet1[5]);
	int main(){
	    void lerVet(int vet[5]);
    int somaVet(int vet[5]);
    void imprimeVet(int vet[5]);
    int mediaVet(int somaVet);
    void imprimeVet(int vet[5]);
    void subNegativos(int vet[5]);
    void imprimeVet(int vet[5]);
    void subRepitidos(int vet[5]);
    void imprimeVet(int vet[5]);
	    return 0;
}
	void imprimeVet(int vet1[5]){
	    int i = 0;
	    for(i = 0; i < 5; i++){
        printf(" %d, ", vet1[i]);
    }
}
	void lerVet(int vet1[5]){
	    int i = 0;
	    for(i = 0; i < 5; i++){
        printf("Digite valore %d do vetor: ", i);
        scanf("%d", &vet1[i]);
    }
}
	int somaVet(int vet1[5]){
	    int i = 0;
    int resultado;
	    for(i = 0; i < 5; i++){
        resultado = resultado + vet1[i];
    }
    return resultado;
}
	int mediaVet(int somaVet){
	    int media;
	    media = (somaVet / 5);
    return media;
}
	void subNegativos(int vet1[5]){
	    int i = 0;
	    for(i = 0; i <5; i++){
        if(vet1[i] < 0){
            vet1[i] = 0;
        }
    }
}
	void subRepitidos(int vet1[5]){
	    int i = 0;
    int j = 0;
	    for(i = 0; i < 5; i++){
        for(j = 0; j < 5; j++){
            if(vet1[i] == vet1[j]){
                vet1[j] = 0;
                vet1[i] = 0;
            }
        }
    }
}
	 
	

Editado por Fernando Ribeiro
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá. O seu código corrigido seria isso:

#include <stdio.h>

// Aqui estão os protótipps das funções
void imprimeVet(int vet[5]);
void lerVet(int vet[5]);
int somaVet(int vet[5]);
int mediaVet(int vet[5]);
void subNegativos(int vet[5]);
void subRepitidos(int vet[5]);

int main() {

    int vet[5]; // cria um vetor
    int soma;
    int media;
    // Aqui as funções estão sendo chamadas
    lerVet(vet);
    
    soma = somaVet(vet);
    printf("\nSoma: %d\n", soma);
    
    imprimeVet(vet);
    
    media = mediaVet(vet); // aqui a variável media recebe o valor que a função retorna 
    printf("\nMedia: %d\n", media);
    
    imprimeVet(vet);
    
    subNegativos(vet);
    printf("\n");
    imprimeVet(vet);
    
    subRepitidos(vet);
    printf("\n");
    imprimeVet(vet);

    return 0;
}

void imprimeVet(int vet[5]) {
    int i = 0;
    for(i = 0; i < 5; i++) {
        printf(" %d, ", vet[i]);
    }
}

void lerVet(int vet[5]) {
    int i = 0;
    for(i = 0; i < 5; i++) {
        printf("Digite valore %d do vetor: ", i);
        scanf("%d", &vet[i]);
    }
}

int somaVet(int vet[5]) {
    int i = 0;
    int resultado = 0;
    for(i = 0; i < 5; i++) {
        resultado = resultado + vet[i];
    }
    return resultado;
}

int mediaVet(int vet[5]) {
    int media = 0, soma = 0;
    int i;
    for (i = 0; i < 5; i++) {
        soma = soma + vet[i];
    }
    media = (soma / 5);
    return media;
}

void subNegativos(int vet[5]) {
    int i = 0;
    for(i = 0; i <5; i++) {
        if(vet[i] < 0) {
            vet[i] = 0;
        }
    }
}

void subRepitidos(int vet[5]) {
    int i;
    int j;
    for(i = 0; i < 5; i++) {
        for(j = 0; j < i; j++) {
            if(vet[i] == vet[j]) {
                vet[i] = 0;
            }
        }
    }

}

Agora é só ajustar a lógica do seu código

Quanto a função main ela seria basicamente isso:

int main() {


    return 0;
}

Todo código em C começa sua execução pela função main (principal)

Qualquer dúvida é só perguntar

Link para o comentário
Compartilhar em outros sites

  • 0

Apenas para você entender um pouco melhor sobre função com um tipo de retorno que não void (void não retorna nada)

Segue um pequeno exemplo:

#include <stdio.h>

// declaração das funções
void ler_vetor(int vet[]);
float media_vetor(int vet[]);

int main() {

    int vet[5];
    float media = 0;

    ler_vetor(vet);

    media = media_vetor(vet);

    printf("\nMedia: %.2f\n", media);

    return 0;
}

void ler_vetor(int vet[]) {

    int i;

    for (i = 0; i < 5; i++) {
        printf("Digite o valor da posicao %d: ", i);
        scanf("%d", &vet[i]);
    }
}

float media_vetor(int vet[]) {

    float soma = 0, media = 0;
    int i;

    for (i = 0; i < 5; i++) {
        soma += vet[i];
    }
    media = soma / 5;

    return media;
}

Agora amigo. é só questão de você praticar. Programação se aprende praticando! 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...