12/03/2008, 13:24
|
| | Fecha de Ingreso: enero-2008
Mensajes: 22
Antigüedad: 17 años Puntos: 0 | |
Porque me falla al pasar un array bidimensional? Hola!
Estoy haciendo un programa que trata de leer un fichero y sacar datos a traves de él. El objetivo de este es sacar los importes totales de cada mes, y el total de cada vendedor (cod)
He señalado en el código las partes que fallan, espero que puedan ayudarme!
Código:
#include <stdio.h>
#include <stdlib.h>
struct FVENTAS
{
int cod;
int imp;
int mes;
int dia;
};
FILE *abrir_fichero(char *nom,char *modo)
{
FILE* fich;
fich=fopen(nom,modo);
if (fich==NULL)
{
printf("Error en la apertura del archivo");
exit (1);
}
return fich;
}
void mostrar_totales_mes(int *codmes)
{
int x,y;
for (x=0;x<10;x++)
{
printf("Vendedor %d\n",x+1);
puts("---------------");
for(y=0;y<12;y++)
printf("Mes de %d: €%d",y+1,codmes[x][y]);
}
}
void mostrar_totales(int *total)
{
int x;
for (x=0;x<10;x++)
{
printf("Vendedor %d\n",x+1);
puts("--------------");
printf("Ha generado un total de %d euros\n",total[x][y]);
/*Y aquí: Subscripted value is neither array or pointer*/
}
}
void calculo(FILE* fich)
{
int total[10];
int codmes[10][12];
struct FVENTAS comodin;
int x,y;
for (x=0;x<10;x++)
{
total[x]=0;
for(y=0;y<12;y++)
codmes[x][y]=0;
}
fread(&comodin,sizeof(comodin),1,fich);
while(!feof(fich))
{
codmes[comodin.cod-1][comodin.mes-1]+=comodin.imp;
total[comodin.cod-1]+=comodin.imp;
fread(&comodin,sizeof(comodin),1,fich);
}
mostrar_totales_mes(codmes);
// Aqui me dice -> Warning: passing argument 1 of "mostrar_totales_mes" from //incompatible pointer type
mostrar_totales(total);
}
int main()
{
FILE* fich;
fich=abrir_fichero("fventas.rtf","r");
calculo(fich);
fclose(fich);
return 0;
}
Última edición por athiria; 12/03/2008 a las 13:51 |