elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


  Mostrar Temas
Páginas: 1 2 [3] 4 5 6
21  Programación / Programación C/C++ / Que significa un solo = en un if? en: 18 Febrero 2017, 00:19 am
Hola

Tengo este codigo que tengo que analizar:


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. int a;
  7. scanf("%d",&a);
  8. if(a=0)
  9. {
  10.    printf("Verdadero");
  11. }
  12. else
  13. {
  14.    printf("Falso");
  15. }
  16.  
  17.  
  18.    return 0;
  19. }
  20.  

No entiendo que significa que el if tenga un solo igual en vez de 2.
Osea se que evidentemente no es una comparacion pero nose que hace para que siempre el programa me tome falso.
22  Programación / Programación C/C++ / Porque el resultado de este codigo siempre es verdadero? en: 14 Febrero 2017, 20:58 pm
Hola

Estoy analizando el siguiente codigo

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.    int a=5,b=6,c=8;
  7.  
  8.    if((a || (b&&c)) == ((a&&b) || (a&&c)))
  9.    {
  10.        printf("Verdadero");
  11.    }
  12.    else
  13.    {
  14.        printf("Falso");
  15.    }
  16.  
  17.  
  18.    return 0;
  19. }
  20.  

Basicamente lo que no entiendo es que si tengo dos variables

A=5 y B=6

Y hago A&&B ...El resultado siempre da 1.
y si hago A || b ....El resultado siempre da 1.

El mismo resultado sucede si a y b son iguales.
23  Programación / Programación C/C++ / Ejercicio Básico de Operadores en C en: 14 Febrero 2017, 15:24 pm
Hola

Tengo el siguiente código

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. double num=123456789.56;
  7. int x,r;
  8. x=num;
  9.  
  10. r=x%100000/1000/7;
  11.  
  12. printf("%d",r);
  13.  
  14.    return 0;
  15. }

La idea el ejercicio es que sepamos que operacion hay que ejecutar primero...Estuve leyendo sobre precedencia de operadores y se dice que de izquierda a derecha viene la multiplicacion, luego la division y luego el %.

El tema es que intento hacer todas las divisiones posibles ... osea 100000/1000 y luego ese resultado / 7 y luego hago el %....y me da cualquier cosa.
El resultado tiene que ser 8 pero no llego a ese resultado...algo estoy haciendo mal o nose porque operacion empezar..
24  Programación / Programación C/C++ / No me sale un simple do - while T_T en: 13 Diciembre 2016, 21:57 pm
Hola

Tengo un ejercicio en el cual tengo que validar el ingreso de un caracter permitiendo que solo guarde letras mayusculas o el asterisco.
Lo hago y solo valida el asterisco y si pongo mayus o minus o cualquier otro caracter sigue pidiendo.
Código
  1. int main()
  2. {
  3. char car;
  4.  
  5. do
  6. {
  7.    printf("Ingrese un caracter: \n");
  8.    car=getche();
  9.  
  10. }
  11. while((car<'A' && car>'Z') || car!='*');
  12.  
  13. printf("\nLa letra ingreada es %c",car);
  14.  
  15.    return 0;
  16. }
  17.  

Basicamente es eso, en las condiciones del while la estoy pifiando y no entiendo.
25  Programación / Programación C/C++ / Como afecta el negado a este tipo de expresion en C? en: 13 Diciembre 2016, 16:07 pm
Tengo la siguiente expresion a la que le aplico varios negados.

Código
  1. !((3>x) || (x>7))

No entiendo como afecta el negado a :

- Los signos && y ||  (Osea si le aplico un negado a una expresion que tenga

Código
  1. (!(letra>='A' && letra<='Z'))

No se si hay algunos casos donde el negado transforma el && a un || o viceversa.

Tampoco entiendo como afecta el negado a los signos de mayor y menor.
Si los cambia o les pone mayor o igual o menor o igual.

He leido sobre leyes de demorgan pero no entiendo aun sobre en como afecta.
26  Programación / Programación C/C++ / Consulta sobre ejercicio basico en C? en: 11 Diciembre 2016, 23:19 pm
Hola

Tengo una consulta con un problema de una guia de informatica I.

El codigo es el siguiente

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. unsigned char c=5;
  7. double b=12;
  8. int a=346,r;
  9. r=a/b%c;
  10. printf("%d",r);
  11.    return 0;
  12. }
  13.  

Segun la precedencia, primero viene * , luego la / y por ultimo %.
Hice los calculos y me da 3.
El tema es que la respuesta correcta, al probarlo en el compilador es un error de compilacion que dice "invalid operand to binary % (have "double and "int").
El tema es que si yo saco el "%c" me permite compilar y ejecutar el programa con normalidad.
Ahora si yo pongo el %c da el error de compilacion pero no entiendo ya que a/b es un entero/double...basicamente no entiendo de donde sale ese error de compilacion.
27  Programación / Programación C/C++ / (Consulta)Error al unir 2 arreglos en: 29 Noviembre 2016, 15:56 pm
Hola.

Tengo un ejercicio en el cual tengo 2 arreglos y tengo que crear un tercer arreglo que contenga los dos arreglos anteriores de manera ordenada.
No puedo usar arreglos auxiliares, tampoco puedo usar burbujeo.
Lo hago y el codigo tiene logica, pero no logro que funcione correctamente.

Ejemplo:

Arreglo 1: 1,2,3,6
Arreglo 2. 4,5,8,9.
Resultado: 1,2,3,4,5,6,8,9.
Resultado Que Me Da a mi (Horrible) :  1,2,3,6


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. void CARGA(int arreglo[10]);
  4. void imprimir(int arreglo[20]);
  5. void unir(int arreglo1[10],int arreglo2[10],int resultante[20]);
  6. int main()
  7. {
  8.    int arreglo1[10]={0};
  9.    int arreglo2[10]={0};
  10.    int resultante[20]={0};
  11.    printf("Ingrese arreglo 1: \n ");
  12.    CARGA(arreglo1);
  13.    printf("\nIngrese arreglo 2:  \n ");
  14.    CARGA(arreglo2);
  15.  
  16.    printf("\n");
  17.    printf("\nEl arreglo resultante es: \n");
  18.    unir(arreglo1,arreglo2,resultante);
  19.    imprimir(resultante);
  20.    return 0;
  21. }
  22. void CARGA(int arreglo[10])
  23. {
  24.    int i=0;
  25.    int numero;
  26.  
  27.    scanf("%d",&numero);
  28.    while(numero!=0)
  29.    {
  30.        arreglo[i]=numero;
  31.        i++;
  32.        scanf("%d",&numero);
  33.    }
  34.    arreglo[i]=0;
  35.  
  36. }
  37. void imprimir(int arreglo[20])
  38. {
  39.    int i=0;
  40.  
  41.    for(i=0;i<10;i++)
  42.    {
  43.        if(arreglo[i]!=0)
  44.        {
  45.            printf(" %d - ",arreglo[i]);
  46.        }
  47.    }
  48.  
  49. }
  50.  
  51. void unir(int arreglo1[10],int arreglo2[10],int resultante[20])
  52. {
  53.    int i=0,j=0,k=0;
  54.  
  55.    while(arreglo1[i]!=0)
  56.    {
  57.        while(arreglo2[j]!=0)
  58.        {
  59.            if(arreglo1[i]<arreglo2[j])
  60.            {
  61.  
  62.                resultante[k]=arreglo1[i];
  63.            }
  64.            else
  65.            {
  66.  
  67.                resultante[k]=arreglo2[j];
  68.            }
  69.            j++;
  70.        }
  71.        j=0;
  72.        k++;
  73.        i++;
  74.    }
  75.  
  76. resultante[k]=0;
  77.  
  78.  
  79.  
  80. }
28  Programación / Programación C/C++ / Que significa un && entre dos variables en C? en: 26 Noviembre 2016, 01:48 am
Hola

Tengo este programa y no logro entender que es lo que hace un doble uppersand en ambas variables.
Les paso el codigo

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4.  
  5.  
  6. int main()
  7. {
  8.  
  9. int n1=4;
  10. int n2=5;
  11.  
  12. if(n1&&n2)
  13. {
  14.    printf("Entre");
  15. }
  16. else
  17. {
  18.    printf("\nNo entre");
  19. }
  20.  
  21.  
  22. return 0;
  23. }
  24.  

Asi sea poniendo los mismos valores o distintos, siempre pone "Entre", no logro entender que significa if (var1&&var2)
29  Programación / Programación C/C++ / Algo simple de arreglos que no me sale (Si, soy re newbie) en: 24 Noviembre 2016, 00:42 am
Hola

Tengo que hacer un ejercicio en el cual el usuario ingrese un texto, el texto se va a guardar en un arreglo de tipo char. Lo que tengo que hacer es quitar del arreglo aquellos caracteres que sean la letra "o".
Lo tengo que hacer de manera que si yo ingreso la frase "Hola Mundo"...Tiene que quedar
"Hla Mund".
Es decir, me va a quedar un arreglo mas chico..
Es importante destacar que NO PUEDO USAR ARREGLOS AUXILIARES.

Si fuera con auxiliares es muy sencillo. Lo estoy intentando hacer haciendo que cuando encuentre una letra "o",se mueva todo el arreglo una posicion hacia la izquierda, pero no logre hacerlo. Les dejo mi codigo haber si me pueden ayudar plz.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.    char texto[500];
  7.    int i=0,j=0;
  8.    printf("Ingrese el texto:");
  9.    gets(texto);
  10.    printf("\nLo ingresado es %s",texto);
  11.    while(texto[i]!='\0')
  12.    {
  13.        if(texto[i]=='o')
  14.        {
  15.                if(texto[i+1]!='\0')
  16.                {
  17.                    while(texto[j]!='\0')
  18.                    {
  19.                        if(texto[j]!='\0')
  20.                        {
  21.                            texto[j]=texto[j+1];
  22.                        }
  23.                        else
  24.                        {
  25.                            texto[j]='\0';
  26.                        }
  27.                        j++;
  28.                    }
  29.                    texto[j]='\0';
  30.                }
  31.                else
  32.                {
  33.                    texto[i]='\0';
  34.                }
  35.                j=0;
  36.  
  37.  
  38.        }
  39.  
  40.            i++;
  41.  
  42.    }
  43.    printf("\nLo ingresado modificado es\n %s",texto);
  44.    return 0;
  45. }
  46.  

Lo pense en el momento, pero si ustedes tienen una mejor logica de hacer esto mejor, porque lo mio son muchas lineas y medio complicado.
30  Programación / Programación C/C++ / Invertir una Lista en C - La funcion Pop no me da el ultimo elemento.? en: 26 Octubre 2016, 01:09 am
Hola

Estoy haciendo un programa en el cual tengo que agregar elementos a una lista, luego imprimir la lista y luego crear otra lista en el cual se rellene con los valores de la lista anterior de manera invertida.
El ejercicio parece simple. El problema es que yo uso la funcion pop, que tengo entendido que retorna el ultimo valor de la lista y no me esta retornando el ultimo elemento, sino que primero retorna el primero, luego el segundo y asi...
Dejo mi codigo, supongo que sera algo muy facil pero no le encuentro el defecto a las funciones que programe.

Código
  1. /*Ejercicio 5.6
  2. Programar una función que invierta una lista de enteros. Considere que la lista puede estar vacía*/
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <conio.h>
  7.  
  8. struct s_nodo
  9. {
  10.    int valor;
  11.    struct s_nodo*sig;
  12. };
  13. typedef struct s_nodo *t_nodo;
  14.  
  15. void agregar(t_nodo*,int);
  16. void imprimirLista(t_nodo);
  17. void invertirLista(t_nodo*,t_nodo*);
  18. int pop(t_nodo*);
  19.  
  20. int main()
  21. {
  22.    t_nodo lista=NULL;
  23.    t_nodo inversa=NULL;
  24.    agregar(&lista,1);
  25.    agregar(&lista,3);
  26.    agregar(&lista,5);
  27.    agregar(&lista,7);
  28.    printf("\nLista impresa = ");
  29.    imprimirLista(lista);
  30.    invertirLista(&lista,&inversa);
  31.    printf("\nLista inversa = ");
  32.    imprimirLista(inversa);
  33.    return 0;
  34. }
  35.  
  36. void agregar(t_nodo* nodo,int valor)
  37. {
  38.    if(*nodo==NULL)
  39.    {
  40.        *nodo=(t_nodo)malloc(sizeof(struct s_nodo));
  41.        if(*nodo==NULL)
  42.            return;
  43.        (*nodo)->valor=valor;
  44.        (*nodo)->sig=NULL;
  45.    }
  46.    else
  47.        agregar(&((*nodo)->sig),valor);
  48. }
  49.  
  50. void imprimirLista(t_nodo lista)
  51. {
  52.    while(lista!=NULL)
  53.    {
  54.        printf(" %d  ",lista->valor);
  55.        lista=lista->sig;
  56.    }
  57. }
  58.  
  59. void invertirLista(t_nodo *lista,t_nodo* inversa)
  60. {
  61.    int valor;
  62.    while(*lista!=NULL)
  63.    {
  64.        valor=pop(lista);
  65.        agregar(inversa,valor);
  66.    }
  67. }
  68.  
  69. int pop(t_nodo* nodo)
  70. {
  71.    t_nodo aux=*nodo;
  72.    int valor=aux->valor;
  73.    *nodo=aux->sig;
  74.    free(aux);
  75.    return valor;
  76. }
Páginas: 1 2 [3] 4 5 6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines