hola buenas tardes, colegas

Iniciado por LARANARENElol, 10 Diciembre 2018, 07:25 AM

0 Miembros y 1 Visitante están viendo este tema.

LARANARENElol

quiero ver si me dicen los errores que tengo y que me ayuden a acomodar en orden alfabetico los hoteles, en la parte que les marcare a continuacion, gracias, ya casi lo termino.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#include<locale.h>//Agregue esta libreria
void altas(char nom[70][30],int numh[70][30],int numHD[70][30],int R[70][30], char cui[70][15], int *n);
void consulta(char nom[70][30],int numh[70][30],int numHD[70][30],int R[70][30], char cui[70][15], int n);
void consulta_n(char nom[70][30],int numh[70][30],int numHD[70][30],int R[70][30], char cui[70][15], int n);
void modifica(char nom[70][30],int numh[70][30],int numHD[70][30],int R[70][30], char cui[70][15], int n);
int buscar(char nom[70][30],int n);
void bajas(char nom[70][30],int numh[70][30],int numHD[70][30],int R[70][30], char cui[70][15], int *n);

int main(){
char opc=' ' ,opc2=' ', nom[70][30],  cui[70][15];
int numh[70][30],numHD[70][30], R[70][30], n=0;
setlocale(LC_ALL,"");//Esto con la libreria que te agregue te permitira usar acentos al imprimir
do{
system("cls");
printf("Menu de opciones\n");
printf(" a- Altas\n");
printf(" b- Consultas\n");
printf(" c- Modificaciones por nombre de hotel\n");
printf(" d- Bajas por nombre de hotel\n");
printf(" e- Salir\n");
printf(" ¿Que opcion desea?\n");
fflush(stdin);
opc=getchar();
opc=tolower(opc);
switch(opc)
{
case 'a':
printf(" REGISTRO\n");
altas(nom,numh,numHD,R,cui, &n);
break;
case 'b':
do
{
printf("Consultas\n");
printf("a- General\n");
       printf("b- Consulta por nombre de Centro Turistico\n");
printf("c- Salir\n");
fflush(stdin);
scanf("%c",&opc2);
switch(opc2)
{
case 'a':
consulta(nom,numh,numHD, R,cui,n);
break;
case 'b':
consulta_n(nom,numh,numHD, R,cui,n);
break;
case 'c':
break;
default:printf("ERROR\n");
}
}while(opc2!='c');
break;

case'c':
printf("Modificaciones por nombre de hotel\n");
fflush(stdin);
modifica(nom,numh,numHD,R,cui, n);


break;
case'd':
printf("Bajas por nombre de hotel\n");


break;
case'e':
break;
default: printf("Error\n");
}


}while(opc!='e');
system("pause");
return 0;
}

void altas(char nom[70][30],int numh[70][30],int numHD[70][30],int R[70][30], char cui[70][15], int *n)
{
char salir;
do
{
printf("Ingrese el nombre de su centro turistico\n");
scanf("%s",&nom[*n]);
printf("Ingrese el numero de habitaciones sencillas \n");
fflush(stdin);
scanf("%d",&numh[*n]);
printf("Ingrese el numero de habitaciones dobles\n");
fflush(stdin);
scanf("%d",&numHD[*n]);
printf("Ingrese el numero de restaurantes dentro del centro\n");
fflush(stdin);
scanf("%d",&R[*n]);
printf("En que ciudad se encuentra el centro\n");
fflush(stdin);
gets(cui[*n]);
*n=*n+1;
printf("¿Quieres ingresar otro S/N ?\n");
fflush(stdin);
salir=toupper(getchar());
}while(salir!='N');
}

void consulta(char nom[70][30],int numh[70][30],int numHD[70][30],int R[70][30], char cui[70][15], int n)
{
do//en esta parte necesito ayuda para acomodar en orden alfabetico porfavor
{
int a,b,aux,j=0;
char aux2[30];
for(a=1; a<nom[n][30]; a++)
for(b=0; b<nom[n][30]-a; b++)
if(strcmp(nom[b],nom[b+1])>0);
{
n++;
aux2[30]=nom[b][30];
nom[b][70]=nom[b+1][70];
nom[b+1][70]=aux2[30];
}
}while(n==70);
{
fflush(stdin);
printf("%s\n",nom[b]);
printf("Numero de habitaciones sencillas: %d\n",numh[b]);
printf("Numero de habitaciones dobles: %d\n",numHD[b]);
printf("Numero de restaurantes dentro del hotel: %d\n",R[x]);
printf("Se encuentra en la cuidad de: %s\n",cui[x]);
}
system("pause");
}

void consulta_n(char nom[70][30],int numh[70][30],int numHD[70][30],int R[70][30], char cui[70][15], int n){
int x=0,habitot,coinc=0;//Agregue variable coincidencias
char nomb[30];
printf("Da el nombre del centro turistico que desea conocer\n");
fflush(stdin);
gets(nomb);
for(x=0;x<n;x++)
if(strcmp(nomb,nom[x])==0){
coinc++;
printf("Numero de habitaciones sencillas: %d\n",numh[x]);
printf("Numero de habitaciones dobles: %d\n",numHD[x]);
printf("Numero de restaurantes: %d",R[x]);
}
if(coinc==0){ //Si en la busqueda no hay coincidencias valida que ese hotel no existe en el registro
system("cls");
printf("No está registrado.\n");
system("pause");
}
}

int buscar(char nom[70][30],int n)
{char nomb[30];
int y,pos=0;
printf("Ingrese nombre del hotel que desea buscar para modificar\n");
fflush(stdin);
scanf("%s",&nomb);
for(y=0;y<n;y++)
if(nomb==nom[y])
{pos=y;
break;
}
if(pos==-1)
puts("No se encontro hotel\n");
return pos;
}

void modifica(char nom[70][30],int numh[70][30],int numHD[70][30],int R[70][30], char cui[70][15], int n)
{
int p,opc;
p=buscar(nom,n);
if(p!=-1)
{
printf("Datos a modificar\n");
printf("1- Nombre\n");
printf("2- Numero de habitaciones sencillas\n");
printf("3- Numero de habitaciones dobles\n");
   printf("4- Numero de restaurantes\n");
printf("5- Ciudad\n");
printf("6- Salir\n");
scanf("%d",&opc);
switch(opc)
{
case 1:
printf("Da el nuevo nombre\n");
fflush(stdin);
gets(nom[p]);
break;
case 2:
printf("Da el nuevo numero de habitaciones\n");
scanf("%d",&numh[p]);
break;
case 3:
printf("Da el nuevo numero de habitaciones dobles\n");
scanf("%d",&numHD[p]);
break;
case 4:
printf("Da el nuevo numero restaurantes\n");
scanf("%d",&R[p]);
break;
case 5:
printf("Da la nueva cuidad\n");
scanf("%s",&cui[p]);
break;
case 6:
break;
default:printf("ERROR\n");
}

}
}
void baja(char nom[70][30],int numh[70][30],int numHD[70][30],int R[70][30], char cui[70][15], int *n)
{
int *y;
char p;
p=buscar(nom,*n);
if(p!=-1)
{
for(*y=p;*y<*n;*y++)
{
nom[*y]==nom[*y+1];
strcpy(nom[*y],nom[*y+1]);
p[y]=p[y+1];
}
(*n)--;
}
}


gracias, espero que me puedan ayudar




es en esta parte para ser mas espesifico, en este void y lo tengo que acomodar lo que meta en orden alfabetico

void consulta(char nom[70][30],int numh[70][30],int numHD[70][30],int R[70][30], char cui[70][15], int n)
{
do//en esta parte necesito ayuda para acomodar en orden alfabetico porfavor
{
int a,b,aux,j=0;
char aux2[30];
for(a=1; a<nom[n][30]; a++)
for(b=0; b<nom[n][30]-a; b++)
if(strcmp(nom[b],nom[b+1])>0);
{
n++;
aux2[30]=nom[b][30];
nom[b][70]=nom[b+1][70];
nom[b+1][70]=aux2[30];
}
}while(n==70);
{
fflush(stdin);
printf("%s\n",nom[b]);
printf("Numero de habitaciones sencillas: %d\n",numh[b]);
printf("Numero de habitaciones dobles: %d\n",numHD[b]);
printf("Numero de restaurantes dentro del hotel: %d\n",R[x]);
printf("Se encuentra en la cuidad de: %s\n",cui[x]);
}
system("pause");
}

CalgaryCorpus

#1
Linea 116, borra el ; al final de la linea.
Lineas 129 y 130, que es la variable x ?

Sugiero que uses mejores nombres para tus variables, si algo cuenta el numero de habitaciones, llamalo numeroHabitaciones, o algo asi, en vez de numh. Mejores nombres sirven para poder entender mejor el programa, especialmente si vas a pedir ayuda en un foro donde necesitas que otros entiendan lo que para ti tal vez es obvio.
Aqui mi perfil en LinkedIn, invitame un cafe aqui