Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Funcion en ANSI C

Estas en el tema de Funcion en ANSI C en el foro de C/C++ en Foros del Web. Estoy trabajando en el cole con ANSI C bajo unix, mi duda es ahora con funciones no las he tenido claras al 100% veran tengo ...
  #1 (permalink)  
Antiguo 06/03/2010, 13:31
 
Fecha de Ingreso: marzo-2010
Mensajes: 10
Antigüedad: 14 años, 8 meses
Puntos: 0
Funcion en ANSI C

Estoy trabajando en el cole con ANSI C bajo unix, mi duda es ahora con funciones no las he tenido claras al 100% veran tengo este código que "inserta" datos de un alumno

Código:
#include <stdio.h>
#define T 20
struct materia {
 char nom[30];
 float calif;
};
struct alumno {
 char nombre[50];
 int edad;
 char sexo;
 struct materia mat[5];
 char marca;
};
struct alumno alumnos[T];
void insertar (struct alumno alumnos[]) {
 int i=0,ban=0;
 do {
  if (alumnos[i].marca=='0') {
   printf("Dame tu nombre ");
   fpurge(stdin);
   gets(alumnos[i].nombre);
   printf("\nDame tu edad ");
   scanf("%i",&alumnos[i].edad);
   while (alumnos[i].edad<=0) {
    printf("\n tu edad dada no es valida");
	scanf("%i",&alumnos[i].edad);
   }
   printf("\nseleccione su sexo m/f ");
   scanf("%c",&alumnos[i].sexo);
   while (alumnos[i].sexo!='m' || alumnos[i].sexo!='f') {
    printf("\nsexo no valido vuelva a insertarlo m/f ");
    scanf("%c",&alumnos[i].sexo);
   }
   alumnos[i].marca='1';
   ban=1;
  }
  else
   printf("\n No tengo mas casillas vacias, elimine algun alumno para poder insertar mas");
 }
 while(ban!=1);
}
main () {
	insertar ();
	return 0;
}
Pero me lanza el sig error
tarea.c:43: error: too few arguments to function ‘insertar’

Me podrian explicar que pasa y como solucionarlo soy noob programando desde ya les agradezco :D
  #2 (permalink)  
Antiguo 06/03/2010, 13:33
 
Fecha de Ingreso: febrero-2010
Mensajes: 39
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Funcion en ANSI C

que la función "void insertar (struct alumno alumnos[]) "

pide de parámetro "struct alumno alumnos[]" y tu no le pasas nada
  #3 (permalink)  
Antiguo 06/03/2010, 21:15
 
Fecha de Ingreso: marzo-2010
Mensajes: 10
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Funcion en ANSI C

Ok muchas grácias perdón por contestar apenas y como me dijsite amigo eran los valores de entrada, de echo si era eso ahora me compila y todo pero me gustaria saber si esta correcto o tengo que hacer alguna corrección para mejorarlo, de hecho esta es solo una parte no esta completo mi programa pero me gustaria saber si voy por buen camino

Código:
#include <stdio.h>
#define T 20
struct materia {
 char nom[30];
 float calif;
};
struct alumno {
 char nombre[50];
 int edad;
 char sexo;
 struct materia mat[5];
 char marca;
};
struct alumno alumnos[T];
void insertar () {
 int i=0,ban=0;
 do {
  if (alumnos[i].marca=='0') {
   printf("Dame tu nombre ");
   fpurge(stdin);
   gets(alumnos[i].nombre);
   printf("\nDame tu edad ");
   scanf("%i",&alumnos[i].edad);
   while (alumnos[i].edad<=0) {
    printf("\n tu edad dada no es valida vuelva a ingresarla ");
	scanf("%i",&alumnos[i].edad);
   }
   printf("\nseleccione su sexo m/f ");
   fpurge(stdin);
	  scanf("%c",&alumnos[i].sexo);
   while ((alumnos[i].sexo!='m') && (alumnos[i].sexo!='f')) {
    printf("\nsexo no valido vuelva a insertarlo m/f ");
	   fpurge(stdin);
    scanf("%c",&alumnos[i].sexo);
   }
   alumnos[i].marca='1';
   ban=1;
  }
  if (i==T-1) {
	  printf("\nNo tengo casillas vacias elimine alguna");
	  ban=1;
  }
  i++;
 }
 while(ban!=1);
}
main () {
	int w;
	for (w=0;w<T;w++)
		alumnos[w].marca='0';
	insertar ();
	printf("\n %s \n %i \n %c",alumnos[0].nombre,alumnos[0].edad,alumnos[0].sexo);
	return 0;
}

Etiquetas: ansi, funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:13.