[C con Clase] Una pregunta como puedo declarar estas variables

Steven Davidson srd4121 en njit.edu
Mie Jun 9 22:55:36 CEST 2010


Hola José,

Jose hernandez wrote:
> 
> Una pregunta asi voy bien? 
> 
> #include<stdio.h> 
> 
> int main(){
> Curso_6 [a,b]:Estudiante
> Curso_7 [a,b]:Estudiante
> Curso_8 [a,b]:Estudiante
> Promedio_Estudiante[2000]:Real
> Promedio_Curso[3]:Real
> Promedio_Colegio:Real
> Código_Mejor_Estudiante:Entero

Estas definiciones no pertenecen a C. Lo que escribí en mi mensaje 
anterior estaba en pseudo-C; o sea, era una forma de explicarte las 
definiciones que necesitabas.

La sintaxis en C para definir una variable es de la siguiente manera:

<tipo> <nombre>;

Para arrays (vectores), usamos una sintaxis algo diferente:

<tipo_elemento> <nombre> [ <entero> ];

Para arrays multidimensionales, la sintaxis es parecida:

<tipo_elemento> <nombre> [ <entero> ][ <entero> ][ <entero> ]...;

O sea, agregamos el declarador [] al final tantas veces como 
"dimensiones" queramos para el array.

Sugiero que revises tus notas de clase y libro de texto acerca de la 
gramática de C. También puedes consultar nuestro curso de C++ para este 
tema. Principalmente, consulta el capítulo 6 ( 
http://c.conclase.net/curso/index.php?cap=006#inicio ), 8 ( 
http://c.conclase.net/curso/index.php?cap=008#inicio ), y 10 ( 
http://c.conclase.net/curso/index.php?cap=010#inicio ). No sé habéis 
dado el tema de estructuras, aunque sospecho que sí. Si es así, entonces 
puedes echar un vistazo al capítulo 11: 
http://c.conclase.net/curso/index.php?cap=011#inicio

> float a,b;
> int i;
> 
> printf("Teclea la calificacion de 1a,2a,3a,4a,5a Materia:");
> scanf("%d",&curso_6[a,b]);
> printf("Teclea la calificacion de 1a,2a,3a,4a,5a. Materia:");
> scanf("%d",&curso_7[a,b]);
> printf("Teclea la calificacion de 1a,2a,3a,4a,5a Materia:");
> scanf("%d",&curso_8[a,b]);

El operador [] sólo recibe un entero (o una expresión que evaluada sea 
un entero). Colocando dos números con una coma entre [] no es correcto. 
Deberías colocar dos corchetes por cada índice. Por ejemplo,

scanf( "%d",&curso_8[a][b] );

De hecho, esto ya lo hiciste en tu otro código fuente acerca de las 
ventas de cada mes.

> 
> 
> si voy bien? 
> y pues como haria ahora para establecer el promedio de cada
> estudiante por curso y despues hacer el promedio por curso

Para calcular el promedio, implementa su definición que provee las 
matemáticas:

Promedio = Suma de valores / Cantidad de valores

En tu caso, tendrás que recorrer cada elemento que te interesa e ir 
sumando parcialmente usando un acumulador. Al final, obtendrás la suma 
total. Con esta suma y con la cantidad dada de valores, puedes calcular 
fácilmente el promedio.

Nuevamente, ya hiciste la suma parcial, usando acumuladores, en el 
código fuente que nos mandaste en otro correo-e.


Espero que haya aclarado las dudas.

Steven





Más información sobre la lista de distribución Cconclase