Muchachos lo pude arreglar , no se por que en el código la primera posicion me tomaba uno de mas en el conteo y me dividia mal.. lo sulucione así:
Cita: void promedio(struct telefono c[], int valor){
int i, j, res=0, prom=0, con=1, man=0;
struct telefono aux;
char *auxe;
//Ordeno
for(i=0;i<valor;i++){
for(j=i+1;j<valor;j++){
if(strcmp(c[i].marc, c[j].marc) > 0){
aux = c[i];
c[i] = c[j];
c[j] = aux;
}
}
}
for(i=0;i<valor;i++) {
if(((i+1)<valor) && (strcmp(c[i].marc , c[i+1].marc) == 0)){
man++;
con++;
res = res + c[i].precio;
prom = res / con;
if(man == 1){
con--;
}
}
else
{
con++;
res = res + c[i].precio;
prom = res / con;
printf("La marca es: %s y su promedio: %i \n", c[i].marc, prom);
con=0;
res=0;
prom=0;
}
}
}
Muchas gracias a ambos son unos genios!!.