Olá Giliandro.
Está correto sim, porem a proposta do exercício é praticar ponteiros e conseguir uma maior entendimento que os arrays também são ponteiros.
Então para praticar vamos modificar para receber ponteiro invés de cada numero individualmente, para isso vamos ter a assinatura da função soma dessa maneira:
int soma (int* nums, int tamanho){
Onde vamos receber um ponteiro do array nums e o tamanho de desse array.
Agora dentro da função vamos declarar uma variável para salvar a soma, vamos chama-la de resultado:
int soma (int* nums, int tamanho){
int resultado = 0;
}
Depois vamos utilizar um for que começa de 0 e vai até o tamanho do nosso array, isso para conseguirmos acessar cada posição do nosso array.
int soma (int* nums, int tamanho){
int resultado = 0;
for (int i=0; i<tamanho; i++){
}
}
Para acessar as posições vamos utilizar colchetes [ ] e depois de acessar vamos somar com o que já tiver acumulado na variável resultado.
int soma (int* nums, int tamanho){
int resultado = 0;
for (int i=0; i<tamanho; i++){
resultado += nums[i];
}
}
No final, basta retorna o valor acumulado na variável resultado.
int soma (int* nums, int tamanho){
int resultado = 0;
for (int i=0; i<tamanho; i++){
resultado += nums[i];
}
return resultado;
}
No main vamos chamar nossa função de uma maneira diferente, agora passando o array e o tamanho dele.
int total = soma (nums, tamanho);
Nosso código vai ficar assim:
// Inclui as bibliotecas
# include <stdio.h>
# include <string.h>
int soma (int* nums, int tamanho){
int resultado = 0;
for (int i=0; i<tamanho; i++){
resultado += nums[i];
}
return resultado;
}
int main () {
int tamanho = 3;
int nums [tamanho];
nums [0]= 10;
nums [1]= 20;
nums [2]= 30;
int total = soma (nums, tamanho);
printf("O total eh: %d\n", total);
}
Mas agora vamos analisar as vantagens do nosso novo código para o antigo.
Na nossa função soma antiga ficávamos limitados a somar 3 números e se resolvêssemos somar mais números, teríamos que criar uma nova função ou modificar a nossa original para cada quantidade de numero.
int soma (int a, int b, int c)
Já na nossa nova função podemos somar quantos números quisermos:
int soma (int* nums, int tamanho)
Espero ter te ajudado a entender arrays, ponteiros e qual a vantagem que ganhamos utilizando essa abordagem.
Bons Estudos