Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/03/2008, 13:24
athiria
 
Fecha de Ingreso: enero-2008
Mensajes: 22
Antigüedad: 17 años
Puntos: 0
Exclamación 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