Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

148
Views
Promedio de elementos en matriz

Estoy tratando de agregar los elementos en una matriz. Es solo un programa simple para calcular el promedio de las calificaciones de los estudiantes. Sé que esta es probablemente una forma rudimentaria de codificar esto, estoy buscando hacerlo de manera más eficiente. Sin embargo, mi código no devuelve el promedio. Agradecería mucho cualquier ayuda. Intenté esto con un bucle for pero obtuve la misma respuesta incorrecta.

 #include <stdio.h> int main() { int grades[6]; int average; int sum = 0; printf("Please enter your five test scores:\n"); scanf("%d", &grades[0]); scanf("%d", &grades[1]); scanf("%d", &grades[2]); scanf("%d", &grades[3]); scanf("%d", &grades[4]); scanf("%d", &grades[5]); sum = sum + grades[6]; average = sum / 5; printf("The average of the students test scores is %d:\n", average); return 0; }
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Debe sumar todas las calificaciones y luego dividirlas por su cantidad (en su caso, es 6, no 5, porque la matriz de grades tiene 6 elementos). Aquí hay una muestra de código:

 #include <stdio.h> int main() { int grades[6]; int average; int sum = 0; printf("Please enter your six test scores:\n"); scanf("%d", &grades[0]); scanf("%d", &grades[1]); scanf("%d", &grades[2]); scanf("%d", &grades[3]); scanf("%d", &grades[4]); scanf("%d", &grades[5]); for (int i = 0; i < 6; i++) sum = sum + grades[i]; average = sum / 6; printf("The average of the students test scores is %d:\n", average); return 0; }
over 4 years ago · Santiago Trujillo Report

0

Estoy tratando de agregar los elementos en una matriz.

Tal vez ya sea una pista incorrecta con respecto al título (y el código) donde se trata de promediar elementos en una matriz .

La forma en que construya la matriz depende de usted; Elijo la forma más sencilla. Una decisión importante es: ¿el tamaño de la matriz y el número de valores son iguales? Eso es lo que hace n_grades . Los cuatro ceros en la inicialización del arreglo ilustran la diferencia.

Lo más probable es que un promedio sea un número de punto flotante.

Un problema desagradable con los promedios es el desbordamiento al acecho. Muy poco probable en esta configuración, pero hay un algoritmo más robusto (y elegante). El reparto (double) es la parte poco elegante, pero es necesario porque la división es entre dos números enteros . Aún así, este es el núcleo compacto:

 for (i = 0; i < n_grades; i++) aver += (double) grades[i] / n_grades;

correspondiente a la fórmula matemática:

 i<n A = Sum G_i/n i=0

("Suma" es el gran Sigma)

 #include <stdio.h> int main() { int grades[] = {10,10,9,10,11,11,0,0,0,0}; int n_grades = sizeof grades / sizeof*grades; // use all elements //n_grades = 6; // use only first n elements double aver = 0; for (int i = 0; i < n_grades; i++) aver += (double) grades[i] / n_grades; printf("The average of the students test scores is %f (n= %d):\n", aver, n_grades); return 0; }

Ahora imprime:

 The average of the students test scores is 6.100000 (n= 10):

o, sin comentar, es decir, limitado a 6 grados:

 The average of the students test scores is 10.166667 (n= 6):
over 4 years ago · Santiago Trujillo Report

0

Está suponiendo que grades[6] contiene la suma de todos los valores en la matriz de grades , lo cual es incorrecto, por supuesto.

Necesitas algo como:

 for (int i = 0; i < 6; i++) sum = sum + grades[i];
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!