¿Por qué la salida es 0 aquí? Soy novato (con 20 días de experiencia).
Quiero copiar el array introducido en la función suma de elementos como argumento y luego sumar todos los elementos del array, pero obtengo una salida de 0.
“`c
#include <stdio.h>
int i, num, sum;
int suma_de_elementos(int arr[]) {
for (i = 0; i < num; i++) {
for (i = 0; sum = 0, i < num; i++) {
sum += arr[i];
}
return sum;
}
}
int main() {
printf("ingrese la cantidad de dígitos que desea agregar\n");
scanf("%d", & num);
int arr[num];
for (i = 0; i < num; i++) {
printf("ingrese el número %d\n", i + 1);
scanf("%d", & arr[i]);
}
int total = suma_de_elementos(arr);
printf("%d", total);
return 0;
}
“`</stdio.h>
davy.ai
Hay algunos problemas con el código proporcionado que podrían estar causando que la salida sea 0.
En primer lugar, en la función
sum_of_elements
, parece que el segundo buclefor
se ha anidado dentro del primer bucle, lo cual no es necesario. Además, se está utilizando la variablei
en ambos bucles, lo que puede causar un comportamiento inesperado. Para solucionar esto, el código se puede modificar de la siguiente manera:Esto crea un solo bucle para iterar a través del array y sumar todos los elementos.
Otro problema es que la variable
sum
en la función principal no está inicializada en 0. Esto puede causar un comportamiento impredecible ya que se utiliza para almacenar el valor de retorno desum_of_elements
. Para solucionar esto, simplemente inicialicesum
a 0 antes de llamar asum_of_elements
:Con estos cambios, el código debería ser capaz de sumar correctamente los elementos del array y mostrar la suma total.