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

#411
Es mejor que utilices:
Código (cpp) [Seleccionar]

cin.sync();// Para ignorar los carácteres no leidos...(limpiar el buffer)
cout << endl<<endl<<"Presione una tecla para continuar . . .";
cin.get();// Utiliza esto que es portable.

Lo siento se me olvidó ponerlo en el código :/
#412
Ni idea , ¿que te lo detecta el antivirus? Se ha vuelto loco :rolleyes: no se porque te sale eso.
#413
Cita de: BlackZeroX (Astaroth) en  6 Enero 2013, 05:15 AM
En lugar de reinventar la rueda ( Quicksort ) usa qsort(), aun que en el código no es necesario usar este algoritmo... posiblemente solo hacer un "registro" o cache de los números generados para aumentar la velocidad, pero para números tan pequeños es mejor así.

Dulces Lunas!¡.
Gracias BlackZeroX (Astaroth) no sabía de la existencia de esa función. luis456 en cuanto a lo que dices solo habría que cambiar esto:
Código (cpp) [Seleccionar]
for(register int i = 1; arrayDeNumeros[i]!=0; ++i)
    {
        if(esPrimo(arrayDeNumeros[i]))
            cout<<arrayDeNumeros[i]<<endl;
    }
#414
Creas un archivo de bloc de notas y le cambias la extensión, después añadelo al proyecto. Si no te sale la extensión para cambiarla tienes que irte a opciones de carpeta y búsqueda , a la pestaña ver, y buscas la opción:

Ocultar extensiones de archivo para tipos de archivos conocidos.

Y la desmarcas.
#415
Si que lo da:
C:\Users\xxx\main.c|16|warning: format '%d' expects argument of type 'int', but argument 2 has type 'int *' [-Wformat]|
Pero hay que tenerlos activados, cuando se compila por consola si no me equivoco hay que poner el comando -Wall para que te muestre todos los warnings...
#416
La programación es así, los errores tontos son los que son más difíciles de ver, me alegro de que ya te funcione , de nada  ;D
#417
El fallo está aquí(en la impresión , quita el ampersand):
int Trasposada(int tras[MAX][MAX],int fil,int col, int mat[MAX][MAX])
{
   int i, j;

   for (i=0; i<fil; i++)
       for (j=0; j<col; j++)
       {
           tras[j][i] = mat[i][j];

       }
   for (i=0; i<fil; i++)
   {
       for (j=0; j<col; j++)
           printf("%d ", &mat[i][j]);   //<---------------- EOOOOO que hace ese ampersand ahí???? Arriba pone que lo pusiste para probar pero es que te está imprimiendo las direcciones de memoria
       printf("\n");
   }


}

Además es lógico, los valores que te salen son:
2293100
2293104
2293108
2293112

¿De cuatro en cuatro? No es casualidad... , son direcciones de memoria de un arreglo de int's porque va de 4 en cuatro bytes.
#418
Tal y como está no porque me dan errores de compilacion porque me faltan la mitad de las funciones :laugh: Está así:
#include <stdio.h>
#define MAX 10
int Trasposada(int tras[MAX][MAX],int fil,int col, int mat[MAX][MAX])
{
    int i, j;

    for (i=0; i<fil; i++)
        for (j=0; j<col; j++)
        {
            tras[j][i] = mat[i][j];

        }
    for (i=0; i<fil; i++)
    {
        for (j=0; j<col; j++)
            printf("%d ", mat[i][j]);   //lo he puesto asi para probar si realmente leia la matriz
        printf("\n");
    }


}
int main()
{
    int  i, j, fil=0, col=0, maxm, maxf, x, opinf, opsup;
    int mat[MAX][MAX];
    int esc[MAX][MAX];
    int tras[MAX][MAX];

    printf("Benvingut al programa. MATRIUS.\n\n");


    printf("Indica les FILES que tindra la matriu(max 10):\n");
    scanf("%d", &fil);
    while(fil>MAX)
    {
        printf("Error. Has d'introduir un valor menor de 10\n");
        scanf("%d", &fil);
    }

    printf("Indica les COLUMNES que tindra la matriu(max 10):\n");
    scanf("%d", &col);
    while(col>MAX)
    {
        printf("Error. Has d'introduir un valor menor de 10\n");
        scanf("%d", &col);
    }

    for(i=0; i<fil; i++)
    {
        printf("Introdueix els valors de la fila %d\n", i);
        for(j=0; j<col; j++)
            scanf("%d", &mat[i][j]);
    }
//    dimensio(fil);
//    valors(fil, col, mat);
    printf("\n\nLa matriu introduida es:\n\n");
    for(i=0; i<fil; i++)
    {
        for(j=0; j<col; j++)
            printf("%d ",mat[i][j]);
        printf("\n");
    }

    x=3;
    switch(x)
    {
        /* case 1:Valor_Maxim_M(maxm, fil, col, mat);break;
         case 2:Valor_Maxim_F(maxf, fil, col, mat);break;*/
    case 3:
        Trasposada(tras,fil,col,mat);
        break;
        /*case 4:Escalar(esc,fil,col,mat);break;*/
        /* case 5:Identitat(fil,col,mat);break;
         case 0: printf("FINALITZA EL PROGRAMA\n\n");break;*/
    default:
        printf("Has introduit malament la opcio. Torna a intentar-ho.\n\n");
    }
    return 0;
}

La salida de ese código me da esto:

Indica les FILES que tindra la matriu(max 10):
2
Indica les COLUMNES que tindra la matriu(max 10):
3
Introdueix els valors de la fila 0
1
2
3
Introdueix els valors de la fila 1
4
5
6


La matriu introduida es:

1 2 3
4 5 6
1 2 3
4 5 6

Process returned 0 (0x0)   execution time : 22.177 s
Press any key to continue.
#419
Pon los valores con los que pruebas por favor  :) porque con una matriz de 3x3 parece que funciona.
#420
ASM / Re: Shellcode direcciones
5 Enero 2013, 15:50 PM
Que curioso, entonces al final lo que te quedaría en la pila sería:

Código (asm) [Seleccionar]
0x00000000006c7463
0x66702f6e6962732f


Pero en tu primero código si funcionase te quedaría así:

Código (asm) [Seleccionar]
0x000000006c746366
0x00000000702f6e69
0x0000000062732f2f


¿Eso no importa? Perdona por la ignorancia  :-\