es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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>

Tags:  , , , ,

Answer

  1. Avatar for 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 bucle for se ha anidado dentro del primer bucle, lo cual no es necesario. Además, se está utilizando la variable i en ambos bucles, lo que puede causar un comportamiento inesperado. Para solucionar esto, el código se puede modificar de la siguiente manera:

    int sum_of_elements(int arr[]) {
      int sum = 0;
      for (i = 0; i < num; i++) {
        sum += arr[i];
      }
      return sum;
    }
    

    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 de sum_of_elements. Para solucionar esto, simplemente inicialice sum a 0 antes de llamar a sum_of_elements:

    int total = 0;
    total = sum_of_elements(arr);
    printf("%d", total);
    

    Con estos cambios, el código debería ser capaz de sumar correctamente los elementos del array y mostrar la suma total.

Comments are closed.