Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida Função com array

Quando executo o meu código, ele não traz nenhum retorno e não estou conseguindo identificar o que tem de errado.

#include <stdio.h>
#include <stdlib.h>

/*Escreva uma função soma que recebe um array de inteiros e o tamanho do array, 
e retorna a soma dos números desse array.*/

int soma(int nums[3]){

    int (*resultado) = 0;
     for(int index = 0; index < nums; index++){
       resultado += nums[index];
    }
    return resultado;
}

int main(){
    
    int nums[3] = {10, 20, 30, 40};

    int resultado = soma(nums);
    printf("Resultado da soma dos numeros do array: %d", resultado);
}
1 resposta
solução!

Boa tarde, Alana! Tudo bem com você?

Notei no seu código alguns pontos que precisam de ajustes:

  • Na função soma, você está recebendo apenas o array, mas não o tamanho dele. Isso é importante para que o loop saiba quantas vezes deve iterar. No seu código, o array é declarado com tamanho 3, mas você está tentando inicializá-lo com 4 elementos.

  • Na função soma, você está usando um ponteiro para resultado, mas na verdade deveria ser apenas uma variável do tipo int para armazenar a soma.

  • No loop for você está comparando index com nums, que é o array, quando deveria ser com o tamanho do array.

Deixo abaixo o código completo com as correções aplicadas:

#include <stdio.h>
#include <stdlib.h>

int soma(int nums[], int tamanho){
    int resultado = 0;
    for(int index = 0; index < tamanho; index++){
        resultado += nums[index];
    }
    return resultado;
}

int main(){
    int nums[4] = {10, 20, 30, 40}; 

    int resultado = soma(nums, 4);
    printf("Resultado da soma dos numeros do array: %d\n", resultado);
}

Com isso, terá na tela Resultado da soma dos numeros do array: 100.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado