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

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: Error al comparar cadenas en estructuras en: 28 Agosto 2013, 09:29 am
Gracias!

Mis preguntas,
- segun tenia entendido, para los strings era mejor definirlos sin indicar el numero de elementos [], para las estructuras no es igual?

- en los arrays de int siempre hay que definir los elemenots?

_ en las estrucutras, tambien tenemos que definir previamente los elementos? que pasaria si quiero crear tantos elementos como el usuario quiero para "myfli"

gracias y perdonen a un principiante ;)
2  Programación / Programación C/C++ / Error al comparar cadenas en estructuras en: 27 Agosto 2013, 16:01 pm
Hola,

No se que problema puede existir pero no obtengo el resultado deseado:

Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
//Exercise 12-4: Write a program that lists all the planes that leave from two
//airports specified by the user.
 
int main(void)
{
   int i;
   char city1[2], city2[2]; // airports specified by the user
 
 struct airline {
   int flight_N; // Flight number
   char origin_airp[];  // Originating airport code (three characters)
   char desti_airp[]; //Destination airport code (three characters)
   int start_time[];  //Starting time
   int arrive_time[];  //Arrival time
   };
 
  struct airline myfli[4];
 
 
    myfli[0].flight_N = 329;
strcpy(myfli[0].origin_airp,"ABC");
strcpy(myfli[0].desti_airp,"KID");
myfli[0].start_time[0] = 05;
myfli[0].start_time[1] = 30;
myfli[0].arrive_time[0] = 10;
myfli[0].arrive_time[1] = 55;
 
myfli[1].flight_N = 323;
strcpy(myfli[1].origin_airp,"CCC");
strcpy(myfli[1].desti_airp,"LLI");
myfli[1].start_time[0] = 05;
myfli[1].start_time[1] = 30;
myfli[1].arrive_time[0] = 9;
myfli[1].arrive_time[1] = 55;

myfli[2].flight_N = 559;
strcpy(myfli[2].origin_airp,"BBB");
strcpy(myfli[2].desti_airp,"AAA");
myfli[2].start_time[0] = 07;
myfli[2].start_time[1] = 30;
myfli[2].arrive_time[0] = 10;
myfli[2].arrive_time[1] = 55;
   
    strcpy(city1,"ABC");
    strcpy(city2,"CCC");
   
   
    for (i = 0; i < 4; ++i) {
   
    if (strcmp(myfli[i].origin_airp, city1) == 0 || strcmp(myfli[i].origin_airp, city2) == 0 ){
        printf("Plane Numer: %d\n", myfli[i].flight_N); }
   
    }
 
 
return (0);
}

En el ultimo for y if intento rastear todos los registros de la estructura buscando si coinciden las cadenas city1 y city2 para imprimirlas, pero el resulado impreso no tiene nada que ver con los datos que tenemos :(


Gracias y saludos!
3  Programación / Programación C/C++ / Contar el numero de arrays en una funcion en: 27 Agosto 2013, 12:04 pm
Hola,

Estoy haciendo una funcion que me diga el numero mas alto de un array.

Código:
#include <stdio.h>
#include <string.h>


// Exercise 9-5: Write a function that returns the maximum value of an array of
// numbers.


int maximo(int numeros[])
{

int i, numtotal; // index into the string
int nummaximo;
   
    nummaximo = numeros[0];
 
    numtotal = sizeof numeros / sizeof numeros[0];
    printf("##%d\n", numtotal);
 
 
for (i = 0; numeros[i] != '\0'; ++i) {
   
    if (nummaximo <= numeros[i]) {
    nummaximo = numeros[i]; }
    printf("de momento es %d\n", nummaximo);
       
    }
   
   

return (nummaximo);
}

int main()
{
   
    int bingo[] = {1,2,3, 4, 4, 4, 4, 4, 5, 4, 66, 3, 4, 3, 2, 67};
    int index22;
    index22 = sizeof bingo / sizeof bingo[0];
   

    printf("##total d numero s %d en bingo\n", index22);
 
    printf("el valor maximo es %d\n", maximo(bingo));



return (0);
}

El problema lo tengo en el contador de valores del array para completar el for

Código:
for (i = 0; numeros[i] != '\0'; ++i)
con este funciona correctamente pero al llegar al ultimo valor da numeros aleatorios.

Código:
for (i = 0; i <numtotal ; ++i) {
desconozco el pq pero numtotal siempre es 2 en la funcion.

cual es el motivo por el que fallo aqui?

Gracias y saludos
4  Programación / Programación C/C++ / estrucutras y funciones.... en: 22 Agosto 2013, 15:29 pm
Hola!
Esto solo es un boceto del programa que quiero hacer, ya que la funcion no esta terminada...
Le he dado un valor para que me devuelva al ser llamada pero estoy teniendo problemas al darle valores a la estructura:

Código:
main.cpp:29:32: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
main.cpp:29:32: error: assigning to an array from an initializer list
main.cpp:30:37: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
main.cpp:30:37: error: assigning to an array from an initializer list
main.cpp:32:32: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
main.cpp:32:32: error: assigning to an array from an initializer list
main.cpp:33:37: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
main.cpp:33:37: error: assigning to an array from an initializer list
main.cpp:38:94: error: cannot convert 'main()::horayfecha' to 'int*' for argument '1' to 'int tiemporeal(int*, int*, int*, int*)'

Tampoco estoy seguro si declarando las variables int voy a tener problemas, quizas seria mejor long int?



Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>



// Exercise 12-2: Design a structure to store time and date. Write a function to find
// the difference between two times in minutes.

int tiemporeal(int tim1[1], int dat1[2], int tim2[1], int dat2[2]) {
    // Idea= calcular minutos desde fecha 0 para ambas fechas
    // calcular diferencia entre ellas y return valor absoluto
    int difmin=2; // valor dado para probar
   
    return (difmin);
}

int main(void)
{
    int i;
   
   struct horayfecha {
    int timz[ ]; // Hora, minutos
    int data[];  // dia, mes y ano en digitos
    };

   struct horayfecha misfechas[1];
   
   misfechas[0].timz = { 23, 30};
   misfechas[0].data = { 1, 7, 1998 };
   
   misfechas[1].timz = { 22, 32};
   misfechas[1].data = { 2, 7, 1997 };
     
   
printf ("numero de minutos entre ambas fechas es %d\n", tiemporeal(misfechas[0], misfechas[1]) );
   

return (0);
}
 

Seguramente tengo mas fallos/errores o formas de mejorar el programa, estoy abierto a escuchar ideas :)
Gracias y saludos!
5  Programación / Programación C/C++ / Re: If en macros ? en: 21 Agosto 2013, 09:39 am
perfecto!! muchas gracias a los dos :D

Desconocia que se pudieran ordenar asi " character>='0' && character<='9' " ... me queda mucho  por aprender aun
6  Programación / Programación C/C++ / Re: If en macros ? en: 20 Agosto 2013, 14:59 pm
gracias,

entonces seria algo asi?

is_digit(x) (if(x == 0 || x == 1 ||..... x== 9)
 {
// aqui se supone que tengo decir que si esto se cumple se devuelva 0 si no 1, pero  :huh:
}

7  Programación / Programación C/C++ / Re: If en macros ? en: 20 Agosto 2013, 14:30 pm
no te entiendo,
mira, esto es exactamente lo que necesito:

Exercise 10-2: Write a macro is_digit that returns TRUE if its argument is a decimal digit.


yo entiendo que una macro te devuelve un output, pero dicho output no puede ser una string? o que forma existe de que me devuelva un TRUE ?

gracias!
8  Programación / Programación C/C++ / If en macros ? en: 20 Agosto 2013, 12:18 pm
Es posible incluir un IF en un macro?

Por ejemplo, quiero hacer un macro que devuelva TRUE si el argumento introducido es un digito decimal, y no se me ocurre otra forma que no sea anadiendo un if en el macro.



por otro lado, es posible que un macro devuelva un char o un string en lugar de de int o float?

gracias y saludos
9  Programación / Programación C/C++ / Error con el while en: 19 Agosto 2013, 14:06 pm
Hola,
Estoy haciendo un programa que me calcule el numero de palabras en una cadena, lo he disenado calculando el numero de espacios y sumandole +1, el primer problema que puedo tener si tenemos dos espacios entre palabras ya no sera realista el calculo.... pero el pricipal problema es con el while me da error y no logro avanzar (he probado igualmente con for(...) y lo mismo.

Código:
#include <stdio.h>
#include <string.h>

int index, espacio;
char line[100];

int main()
{

strcpy(line,"hola sam, hola sam.");
index=0;

while (line[index] != '/0')
{
    if (line[index] == ' ') {
    ++espacio; }
    ++index;
}

   
   printf("%d palabras/n", espacio+1);


return (0);
}

y el error que da:
Código:
Compiling the source code....
$g++ main.cpp -o demo -lm -pthread -lgmpxx -lgmp -lreadline 2>&1
main.cpp:13:23: warning: multi-character character constant [-Wmultichar]
main.cpp:4:5: error: 'int index' redeclared as different kind of symbol
In file included from main.cpp:2:0:
/usr/include/string.h:471:22: error: previous declaration of 'const char* index(const char*, int)'
main.cpp: In function 'int main()':
main.cpp:11:7: error: overloaded function with no contextual type information
main.cpp:13:18: error: invalid types 'char [100][]' for array subscript
main.cpp:15:19: error: invalid types 'char [100][]' for array subscript
main.cpp:17:7: error: no pre-increment operator for type

Alguna ayuda?
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines