#define Max 300
typedef struct linea {
int numero;
char nombre [100];
int nota;
} Persona [Max];
void funcion(Persona p){
}
Persona personas[300];
personas[0].numero = 77;
funcion(personas[0]);
int main()
{
int notaMedia = 0; // o float
for( int i=0; i < (sizeof(Persona)/sizeof(Persona[0])); i++ )
{
notaMedia += Persona[i].nota;
}
notaMedia /= (sizeof(Persona)/sizeof(Persona[0]));
printf("%i",notaMedia);
}
....
Persona varPersona;
.....
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//Declaro un tipo de estructura
#define Max 300
typedef struct linea {
int numero;
char nombre [100];
int nota;
} Persona [Max];
//declaro y defino función
void funcion(Persona p){
printf("%s\n",p[200].nombre);
strcpy(p[200].nombre,"nombre 200 corregido");
}
main()
{
Persona varPersona;//declaro y defino variable tipo Persona que es un array de estructuras
strcpy(varPersona[200].nombre,"nombre 200");
funcion(varPersona);// llamo a la función pasando la variable
printf("%s\n",varPersona[200].nombre);
}
waldeska escribió:
Un ejemplo probado:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//Declaro un tipo de estructura
#define Max 300
typedef struct linea {
int numero;
char nombre [100];
int nota;
} Persona [Max];
//declaro y defino función
void funcion(Persona p){
printf("%s\n",p[200].nombre);
strcpy(p[200].nombre,"nombre 200 corregido");
}
main()
{
Persona varPersona;//declaro y defino variable tipo Persona que es un array de estructuras
strcpy(varPersona[200].nombre,"nombre 200");
funcion(varPersona);// llamo a la función pasando la variable
printf("%s\n",varPersona[200].nombre);
}
er_gallar escribió:
¿No te falta el prototipo de la función? Sino recuerdo mal mis años de C jaja
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//Declaro un tipo de estructura
#define Max 300
typedef struct linea {
int numero;
char nombre [100];
int nota;
} Persona [Max];
//declaro función
void funcion(Persona p);
main()
{
Persona varPersona;//declaro y defino variable tipo Persona que es un array de estructuras
strcpy(varPersona[200].nombre,"nombre 200");
funcion(varPersona);// llamo a la función pasando la variable
printf("%s\n",varPersona[200].nombre);
}
//Defino función
void funcion(Persona p){
printf("%s\n",p[200].nombre);
strcpy(p[200].nombre,"nombre 200 corregido");
}
waldeska escribió:er_gallar escribió:
¿No te falta el prototipo de la función? Sino recuerdo mal mis años de C jaja
Lo que llamas prototipo yo lo llamo declaración(mas o menos).
Si defines una función antes de su uso, esta te sirve como declaración/prototipo.#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//Declaro un tipo de estructura
#define Max 300
typedef struct linea {
int numero;
char nombre [100];
int nota;
} Persona [Max];
//declaro función
void funcion(Persona p);
main()
{
Persona varPersona;//declaro y defino variable tipo Persona que es un array de estructuras
strcpy(varPersona[200].nombre,"nombre 200");
funcion(varPersona);// llamo a la función pasando la variable
printf("%s\n",varPersona[200].nombre);
}
//Defino función
void funcion(Persona p){
printf("%s\n",p[200].nombre);
strcpy(p[200].nombre,"nombre 200 corregido");
}
Fe de Erratas
Utilizo erroneamente los comentarios de C++ '//' como comentarios de C (/* ... */). Ya lo sé.
er_gallar escribió:Cierto es la costumbre que tengo de poner los prototipos después de los define y las definiciones de las funciónes después del main.
dysoco escribió:Lo de trabajar con C++ no tiene razon alguna, se te simplifican un poco las cosas: pero son dos lenguajes distintos.
Eteream escribió:dysoco escribió:Lo de trabajar con C++ no tiene razon alguna, se te simplifican un poco las cosas: pero son dos lenguajes distintos.
C es un subconjunto estricto de C++. La OO se adecua más a la forma de pensar humana, por eso se trabaja mejor.