Autor
|
Tema: Ayuda con matrices y vectores (Leído 2,967 veces)
|
ezemidget
Desconectado
Mensajes: 2
|
Buenas, tengo que rendir programacion y estuve practicando unos ejercicios con matrices y vectores que es lo que me van a tomar y no me sale, si alguien puede ayudarme se lo agradeceria. Este es el primero: Realizar un programa donde se ingresen las notas de 10 alumnos en 5 materias, calcular el promedio general. De este ejercicio llegue hasta aca y me quede trabajo #include <stdio.h> #include <conio.h>
int i, j ; float nota[10][5], suma, prom; main() { for(i=1 ; i<=10 ; i++){ for(j=1 ; j<=5; j++){ printf("Ingrese las notas del alumno"); scanf("%f", ¬a[j]); suma=suma+nota[j]; } } prom=suma/50; printf("El promedio general es de", &prom); return(0); getch; } Y este es el segundo: Realizar un programa donde se ingresen la cantidad de personas que concurren a una carpa en un mes ( en total 20 carpas) (el maximo de personas por carpa son 6) a) Calcular el promedio con carpa b)Calcular las carpas que tienen excesos de personas c)La cantidad de carpas que estan desocupadas d) Calcular la ganancia que ha tenido mensualmente si por persona cobran $60 Mas que para que me hagan los ejercicios agradeceria si me pueden explicar como usar matrices y vectores
|
|
|
En línea
|
|
|
|
SoyelRobert
Desconectado
Mensajes: 46
|
Mmm a ver: las variables i, j solo las usas para los fors por lo que no tiene utilidad declararlas como variables globales... Lo mismo para suma y promedio. Luego, tu printf está dentro del segundo for eso implica que se repetirá en todas las compenetes de la matriz. En C los arrays empiezan en la componente 0 (si es bidimensional, entonces 0,0) mira: #include <stdio.h>
typedef float mat [10][5];
void main() { int i, j; int asignatura = 0; int alumno = 0; mat A; float nota, promedio; float suma = 0; puts("NOTAS:\n"); for(i=0; i<9; i++){ printf("Alumno %d\n", alumno+1); alumno ++; for(j=0;j<5; j++){ printf("asignatura %d: ", asignatura+1); scanf("%f", &A[i][j]); asignatura ++; } asignatura = asignatura -5; } asignatura = 0;
}
Eso seria un ejemplo de como cargar la matriz. Ahora solo te queda calcular el promedio a ti
|
|
|
En línea
|
getting louder!
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
*Como sólo vas a usar una sola matriz, no le veo mucho sentido el uso de typedef, sencillamente la declaro en main.
*La función main, por cuestiones del Standard, debe ser entera, con el consiguiente return al final de la misma.
*Creo que mejor definir las variables "alumno" y "asignatura" como iguales a uno, así no hay que estar sumando +1 en cada bucle.
*Como picardía puedo aprovechar el postincremento y ahorrarme alumno ++ y asignatura ++, pero es cuestión de gustos y claridad.
*En el primer for i va hasta <10, en lugar de <9.
**Y especialmente es bueno "indentar" el código.#include <stdio.h> int main() { int i, j; int asignatura = 1,alumno = 1; float A[10][5]; puts("NOTAS:\n"); for(i=0; i<10; i++){ printf("Alumno %d\n", alumno++); for(j=0;j<5; j++){ printf("asignatura %d: ", asignatura++); fflush (stdout); scanf("%f", &A[i][j]); } asignatura = 1; } return 0; }
REEDITO:
Mas que para que me hagan los ejercicios agradecería si me pueden explicar como usar matrices y vectores
Creo que más vale un ejemplo que mil palabras: Bueno, que no se diga que no ayudamos a los noveles, como yo. Aquí está con la media:
#include <stdio.h> #define ALUMNOS 10 #define ASIGNATURAS 5 int main() { int i, j; int asignatura = 1,alumno = 1; float A[ALUMNOS][ASIGNATURAS]; float promedio_total=0, promedio[ALUMNOS]={0}; puts("NOTAS:\n"); for(i=0; i<ALUMNOS; i++){ printf("Alumno %d\n", alumno++); for(j=0;j<ASIGNATURAS; j++){ printf("asignatura %d: ", asignatura++); fflush (stdout); scanf("%f", &A[i][j]); promedio[i]+=A[i][j]; } promedio[i]/= ASIGNATURAS; printf("\npromedio alumno %d es %g: \n", i+1,promedio[i]); asignatura = 1; } for (i=0;i<ALUMNOS;i++) promedio_total+=promedio[i]; promedio_total/=ALUMNOS; printf("\npromedio total es %g: \n", promedio_total); return 0; }
Saluditos! ..... !!!!
|
|
« Última modificación: 14 Diciembre 2013, 20:52 pm por leosansan »
|
En línea
|
|
|
|
SoyelRobert
Desconectado
Mensajes: 46
|
*Como sólo vas a usar una sola matriz, no le veo mucho sentido el uso de typedef, sencillamente la declaro en main.
*La función main, por cuestiones del Standard, debe ser entera, con el consiguiente return al final de la misma.
*Creo que mejor definir las variables "alumno" y "asignatura" como iguales a uno, así no hay que estar sumando +1 en cada bucle.
*Como picardía puedo aprovechar el postincremento y ahorrarme alumno ++ y asignatura ++, pero es cuestión de gustos y claridad.
*En el primer for i va hasta <10, en lugar de <9.
**Y especialmente es bueno "indentar" el código:
Si jaja la verdad es que el typedef lo he puesto casi que por costumbre en este caso efectivamente es tonteria Pero lo de que Main debe ser entera? Si no se esta usando el retorno del main para nada, si se declara como void no habria problema... hasta donde yo tengo entendido... Y respecto al fflush tampoco tiene mucha utilidad en este pequeño programa no? salu2!
|
|
« Última modificación: 14 Diciembre 2013, 16:13 pm por SoyelRobert »
|
En línea
|
getting louder!
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Duda] ¿Qué diferencias hay entre las matrices y vectores?
Programación Visual Basic
|
Dreamaker
|
3
|
2,883
|
18 Julio 2010, 22:30 pm
por FFernandez
|
|
|
Uso de matrices o vectores de punteros
Programación C/C++
|
novalida
|
1
|
12,365
|
16 Marzo 2011, 01:19 am
por Don Pollo
|
|
|
vectores y matrices en C
Programación C/C++
|
howaboutno
|
6
|
3,628
|
6 Noviembre 2012, 21:41 pm
por BatchianoISpyxolo
|
|
|
ayuda con programa (matrices,vectores,funciones)
Programación C/C++
|
agusred
|
3
|
3,251
|
7 Junio 2013, 23:28 pm
por Puntoinfinito
|
|
|
[C] Multiplicación de matrices sparse por vectores
Programación C/C++
|
Regexp
|
0
|
2,122
|
12 Junio 2015, 19:00 pm
por Regexp
|
|