Pero o sea, puedo ir tocar los interruptores de la forma que yo quiera y despues volver a las habitaciones una sola vez? o tengo que ir directo a los interruptores y ya sin volver a las lamparas saber a cual pertenece cada uno?
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
, imposible. Se me ocurre como hacerlo si tengo que ir al cuarto donde estan las lamparas despues de haber ido solo una vez al de los interruptores, pero si es al revez sera alguna trampa con electricidad.
http://wiki.elhacker.net/programacion/cc/articulos/lo-que-no-hay-que-hacer-en-c-c#include<stdio.h>
int main()
{
char letra1[]="AAAAA";
char letra2[]="BBBBB";
char letra3[]="CCCCC";
printf("A: %s\nB: %s\nC: %s\n\n",letra1,letra2,letra3);
printf("Ingrese la letra D, 5 veces: ");
gets(letra2);
printf("\nA: %s\nB: %s\nC: %s\n\n",letra1,letra2,letra3);
getchar();
}A: AAAAA
B: BBBBB
C: CCCCC
Ingrese la letra D, 5 veces: DDDDD
A: AAAAA
B: DDDDD
C: CCCCC
A: AAAAA
B: BBBBB
C: CCCCC
Ingrese la letra D, 5 veces: DDDDDDDDDDDDDDDDDDD
A: DDD
B: DDDDD
C: CCCCC
precisamente lo que no queremos que pase en nuestro programa. gets sobreescribio una zona de memoria que no debia sobreescribir, ya que el input debia ser ingresado en letra2, pero simplemente no le importo que el input sea muchisimo mas grande que el tamaño de la cadena. Razon mas que suficiente para no utilizarla.fgets(char *string, int length, FILE * stream)fgets(letra2, 5, stdin);if (letra2[strlen(letra2)-1] == '\n')//string.h para strlen();
letra2[strlen(letra2)-1] = '\0';#include <stdio.h>
#include <string.h>
int main()
{
char cadena1[]={"aaaa"};
char cadena2[100];
char cadena3[]={"0123"};
printf("Ingrese cadena: ");
fgets(cadena2,100,stdin);
printf("cadena1: %s\ncadena2: %s\ncadena3: %s\n\n",cadena1,cadena2,cadena3);
strcpy(cadena1,cadena2);
printf("cadena1: %s\ncadena2: %s\ncadena3: %s",cadena1,cadena2,cadena3);
getchar();
return 0;
}Ingrese cadena: 1111111111111111111111111111111111111111111111111111
//Antes de strcpy
cadena1: aaaa
cadena2: 111111111111111111111111111111111111
cadena3: 0123
//Despues de strcpy
cadena1: 111111111111111111111111111111111111
cadena2: 111111111111111111111111111111111111
cadena3: 1111111111111111111111111111111111111111111111111111
#include <stdio.h>
#include <string.h>
int main()
{
char cadena1[]={"aaaa"};
char cadena2[100];
char cadena3[]={"0123"};
printf("Ingrese cadena: ");
fgets(cadena2,100,stdin);
printf("cadena1: %s\ncadena2: %s\ncadena3: %s\n\n",cadena1,cadena2,cadena3);
strcat(cadena1,cadena2);
printf("cadena1: %s\ncadena2: %s\ncadena3: %s",cadena1,cadena2,cadena3);
getchar();
return 0;
}Ingrese cadena: 11111111111111111111111111111111111111111111
//Antes de strcat
cadena1: aaaa
cadena2: 1111111111111111111111111111
cadena3: 0123
//Despues de strcat
cadena1: aaaa1111111111111111111111111111
cadena2: 1111111111111111111111111111
cadena3: 11111111111111111111111111111111111111111111#include <stdio.h>
#include <string.h>
int main()
{
char cadena1[]={"aaaa"};
char cadena2[100];
char cadena3[]={"0123"};
printf("Ingrese cadena: ");
fgets(cadena2,100,stdin);
printf("cadena1: %s\ncadena2: %s\ncadena3: %s\n\n",cadena1,cadena2,cadena3);
strncpy(cadena1,cadena2,1);
printf("cadena1: %s\ncadena2: %s\ncadena3: %s",cadena1,cadena2,cadena3);
getchar();
return 0;
}Ingrese cadena: 1111111111111111111
//Antes de strncpy
cadena1: aaaa
cadena2: 1111111111111111111
cadena3: 0123
//Despues de strncpy
cadena1: 1aaa
cadena2: 1111111111111111111
cadena3: 0123#include <stdio.h>
#include <string.h>
int main()
{
char cadena1[]={"aaaa"};
char cadena2[100];
char cadena3[]={"0123"};
printf("Ingrese cadena: ");
fgets(cadena2,100,stdin);
printf("cadena1: %s\ncadena2: %s\ncadena3: %s\n\n",cadena1,cadena2,cadena3);
strncat(cadena1,cadena2,0);//Obviamente esta linea es un absurdo
//Pero queda claro el control que la funcion mantiene
printf("cadena1: %s\ncadena2: %s\ncadena3: %s",cadena1,cadena2,cadena3);
getchar();
return 0;
}Ingrese cadena: 123123
//Antes de strncat
cadena1: aaaa
cadena2: 123123
cadena3: 0123
//Despues de strncat
cadena1: aaaa
cadena2: 123123
cadena3: 0123#include <stdio.h>
#define PAUSE printf("Presiona una tecla..."); fgetc(stdin);
int main()
{
PAUSE
return 0;
}
.
) es un mundo inmenso.
.