Menú

Mostrar Mensajes

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ú

Mensajes - avesudra

#711
Vamos a ver , estás devolviendo un puntero , a una cadena de carácteres , si todavía no sabes que son los punteros pues como indica su nombre son apuntadores¿a qué? a direcciones de memoria, entonces char tx2[20] es un puntero que puede variar 20 posiciones, como se le ha indicado , pero claro tu estás asignando un puntero que se retorna de una función , a un array de carácteres.Y eso no es así , te dejo el código corregido:

#include <stdio.h>

char* func () {
char txt2[20];
printf("\nIntroduce word = ");
scanf("%s", &txt2);
return txt2;
}

int main () {
int len = 20;
char *str; //Puntero al inicio de la variable txt2 , o sea a txt2 [0]
str = func();
printf("\nResult = %s.", str);
return 0;
}ara que te quede bien sería:
#712
Hombre no soy el más indicado para decirte esto pues no trabajo de eso pero me gusta la informática y a mi casa llegan ordenadores con mucha mucha "porquería" , normalmente tienen cuatroscientosmil antivirus , ochoscientosmil virus , un millón de toolbars de esas en los navegadores que no sirven para nada , y todo desactualizado . Digamos que no hago mantenimiento , pues ese equipo no está de ningún modo en mantenimiento , pero lo que si hago es desinstalar todo lo que considere ínutil , poner un solo antivirus , y como en tu caso supongo que la empresa pagará la licencia del antivirus verificar que esté actualizado , limpiar cookies , papelera y demás , CCleaner es un programa muy bueno para eso , pasar un escaneo del registro con Argente Registry Cleaner creo que se llama así , y actualizar navegadores , flash player , adobe reader , antivirus... en fin ... pero como lo que vas a hacer es el mantenimiento de ordenadores día a día , pues eso , estar al tanto de las actualizaciones , eliminar lo que sea inútil, y borrar cookies , caché , historial, papelera(no es aconsejable por si se quiere recuperar algo). En cuanto al equipo físicamente normalmente los abro y los limpio cuidadosamente.

¡Un saludo!

PD: Por favor el que entienda de esto que de su opinion a ver si la mía va a estar mal.
#713
¡Muy buena la idea!  ;-) Aunque ten cuidado con las empresas no te vayan a coger por piratilla  :xD Una preguntilla , ¿porque no compilas las librerías Qt estáticamente y distribuyes el ejecutable ? Por ejemplo en lo del chat quería probarlo pero no me funcionaba porque me faltaba SMFL aunque no sé si se puede compilar estáticamente ésta última pero ya te digo que sería util para el que quiera verlo y nó instalar SMFL Qt u otras librerías.

¡Un saludo y gracias por el gran aporte!
#714
Como dice BlackZeroX cada tipo difiere , pero si quieres usar tipos más grandes que long double que creo que es el mayor , necesitas tirar de librerías externas , gmp por ejemplo.
#715
Programación C/C++ / Re: Ayuda ejercicio
17 Julio 2012, 01:33 AM
Te dejo el código modificado pero ya te digo que no funciona bien .. aunque compilar compila.
#include <stdio.h>
#include <conio.h>
#include <string.h>

void menu1(int);
void idatos();
void menu2(int);
void pto1(int);
void pto2(char*);
void pto3(int a[10][40]);
void pto4(int d[10], int e[10][40], int g[10][40]);


int main ()
{

    //Datos registrados
    char s1[]="asd";
    char s2[]= "asd2";


    //Verificacion de datos
    char usuario[32];
    char contrasena[32];

    //Enteros
    int i,k,j,menu;
    //Comienzo para los intentos de contraseña, maximo 3
    for(i=1; i<=3; i++)
    {
        printf("\nIngrese usuario: ");
        scanf("%s",usuario);
        k = strcmp( s1, usuario );
        if (k != 0)
        {
            printf("\nUsuario incorrecto\n");
        }
        if(k == 0)
        {
            printf("\nIngrese contrasena: ");
            scanf("%s",contrasena);
            j = strcmp( s2, contrasena);
            if (j == 0)
            {
                printf("\nDatos correctos\n");
                printf("\nBienvenido al programa del servicio penintenciario\n");
                printf("\n");
                printf("\n");
                menu1(menu);
                //Comienzo de Switch Menu
                getch();
            }

            if(j != 0)
            {
                printf("\ncontrasena incorrecta\n");
            }
        }
    }
}

void menu1(int a)
{
    printf("*********Menu**********\n");
    printf("\n1-Cargar datos\n2-Resultado punto A\n3-Resultado punto B\n4-Resultado punto C\n5-Resultado punto D\n6-Salir del sistema\n");
    printf("\nPor favor elija una opcion: ");
    scanf("%d",&a);
    while (a!=1)
    {
        printf("Elija otra opcion");
        scanf("%d",&a);
    }

    switch (a)
    {
    case 1:
        printf("Por favor ingrese los datos\n");
        int b;
        idatos(b);
        break;
    case 2:
        printf("Opcion no disponible sin la carga de datos");
        break;
    case 3:
        printf("Opcion no disponible sin la carga de datos");
        break;
    case 4:
        printf("Opcion no disponible sin la carga de datos");
        break;
    case 5:
        printf("Opcion no disponible sin la carga de datos");
        break;
    case 6:
        getch();
        break;
    }
}
void idatos()
{
    char nombre[32];
    int i;
    int j;
    for(i=1; i<=10; i++)
    {
        for(j=1; j<=40; j++)
        {
            int nr,np,nc,ll,cp,cont;
            nr=np=nc=ll=cp=cont=0;
            int Mll[10][40];
            int Mct[10][40];
            int VP[10];
            printf("Ingrese numero de recluso");
            scanf("%d",&nr);
            printf("Ingrese numero de piso\n");
            scanf("%d",&np);
            printf("Ingrese numero de celda\n");
            scanf("%d",&nc);
            printf("Ingrese numero de lugares libres\n");
            scanf("%d",&ll);
            printf("Ingrese numero de capacidad total\n");
            scanf("%d",&cp);
            while(nr!=0)
            {
                printf("Ingrese nombre y apellido: ");
                fflush(stdin);
                gets(nombre);
                int x,f,c;
                x=0;
                for(f=1; f<=10; f++)
                {
                    for(c=1; c<=40; c++)
                    {
                        if(Mll[f][c] > 0 && x==0)
                        {
                            x=1;
                            Mll[f][c]=Mll[f][c]-1;
                        }

                    }
                    if(x==0)
                    {
                        cont=cont+1;
                    }
                }
            }
            pto1(cont);
            pto2(nombre);
            pto3(Mll);
            pto4(VP, Mll, Mct);
        }
    }
}
void pto1(int cont)
{
    printf("%d no pudieron ser alojados por falta de lugar\n",cont);
}

void pto2(char* nombre)
{
    printf("Los rechazados son: %s\n", nombre);

}

void pto3(int a[10][40])
{
    int f;
    for(f=1; f<=10; f++)
    {
        int c;
        for(c=1; c<=40; c++)
        {
            if(a[f][c] > 0)
            {
                printf("Para el piso %d, la celda %d tiene aun disponibilidad\n",a,c);
            }
        }
    }

}

void pto4(int d[10], int e[10][40], int g[10][40])
{
    int f;
    for(f=1; f<=10; f++)
    {
        int c;
        for(c=1; c<=40; c++)
        {
            d[f]=(d[f]+(e[f][c]))-(g[f][c]);
        }
    }
    int Max=d[f];
    int aux=f;

    int i;
    for(i=1; i<=10; i++)
    {
        if(d[i] > Max)
        {
            Max=d[i];
            aux=i;
        }
    }


    for(i=aux; i<=aux; i++)
    {
        if(d[i]==Max)
        {
            printf("El piso mas lleno es el piso %d\n",i);
        }
    }
}
#716
Programación C/C++ / Re: Ayuda ejercicio
17 Julio 2012, 01:29 AM
Tienes errores garrafales , utilizas matrices sin saber pasarlas y por lo que he podido comprobar el código que he modificado no funciona bien...
#717
Programación C/C++ / Re: Ayuda ejercicio
17 Julio 2012, 01:02 AM
A parte de lo que dice DickGumshoe en la función anterior a la que te dá el error te faltan llaves... y al final del todo te sobran.
#718
Programación C/C++ / Re: Ayuda ejercicio
17 Julio 2012, 00:53 AM
Que error mas raro , ¿puedes postear ese pedazo de código? Porque lo que dice es que la definición de la función no está permitida aquí antes del token '{'
#719
Programación C/C++ / Re: Ayuda ejercicio
17 Julio 2012, 00:37 AM
Pero el código tiene más errores te copio todos los que me da MinGW, los warnings son avisos solo:
main.c||In function 'main':|
main.c|34|warning: format '%s' expects type 'char *', but argument 2 has type 'char (*)[32]'|
main.c|49|warning: format '%s' expects type 'char *', but argument 2 has type 'char (*)[32]'|
main.c||In function 'idatos':|
main.c|148|warning: missing braces around initializer|
main.c|148|warning: (near initialization for 'Mll[0]')|
main.c|149|warning: missing braces around initializer|
main.c|149|warning: (near initialization for 'Mct[0]')|
main.c|149|warning: unused variable 'Mct'|
main.c|146|warning: unused variable 'c'|
main.c||In function 'pto3':|
main.c|261|error: 'Mll' undeclared (first use in this function)|
main.c|261|note: each undeclared identifier is reported only once for each function it appears in|
main.c|261|error: 'f' undeclared (first use in this function)|
main.c||In function 'pto4':|
main.c|277|error: 'VP' undeclared (first use in this function)|
main.c|277|error: 'Mct' undeclared (first use in this function)|
main.c|277|error: 'Mll' undeclared (first use in this function)|
main.c|280|error: 'Max' undeclared (first use in this function)|
main.c|281|error: 'aux' undeclared (first use in this function)|
main.c|298|error: expected ';' before '}' token|
main.c|302|error: expected identifier or '(' before '}' token|
||=== Build finished: 10 errors, 8 warnings ===|
#720
Programación C/C++ / Re: Ayuda ejercicio
17 Julio 2012, 00:23 AM
Vamos a ver , tu tienes un prototipo de una función:
void pto2(char);
y después lo defines así:
void pto2(int appnom)
Obviamente si le pasas un char* como es appnom:
pt2(appnom);
No sabe que hacer has liado a todas las funciones así que si el proposito de la funcion pt2 es imprimir todos los carácteres de appnom te quedaría el prototipo y la función así:
void pto2(char*);//Prototipo.
void pt2(char* appnom)//Declaracion.
{
  printf("Los rechazados son:\n",);
  while(*appnom!='\0') //Mientras que el contenido de appnom no sea el caracter de final de linea.
   {
      printf("%c\n",*appnom);//Imprime el contenido de appnom.
      ++appnom;//Apunta al siguiente caracter de appnom.
   }
}