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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ... 40
161  Programación / Programación C/C++ / Re: basura en mi programa en: 7 Diciembre 2013, 07:30 am
entonces el primer argumento de la función ingresarDato está bien no?? porque es *void

Código
  1. void ingresarDato(void *dato)
  2. {
  3.    char buffer[TAM];
  4.    fgets(buffer,sizeof(buffer),stdin);
  5.    sscanf(buffer,"%d",dato);
  6. }

ya solo le faltaria otro argumento para indicarle el tipo de dato, pero como se le puede pasar por argumento un tipo de dato y que este sea int??
162  Programación / Programación C/C++ / Re: basura en mi programa en: 6 Diciembre 2013, 19:54 pm
gracias por sus respuestas, en realidad no son tantos scanf, solo que queria ahorrarme líneas de código para que cada vez que tuviera que ingresar un dato no repitiera fgets +sscanf. Le hice unos cambios al codigo y ya funciona para todos los casos excepto para el de ARITMETICA_BINARIA, que me pide que le ingrese un operando (que es de tipo char) y en la funcion de ingresarDato, me dice que el sscanf me va a guardar  el dato en una variable de tipo int, como puedo corregir esto?? que el sscanf me pueda guardar datos tanto de tipo int como de tipo char??

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define TAM 5
  4. #define ARITMETICA_SIMPLE 1
  5. #define ARITMETICA_BINARIA 2
  6. #define FACTORIAL 3
  7. #define TABLA_MULTIPLICAR 4
  8. #define SALIR 5
  9.  
  10. void ingresarDato();
  11.  
  12. int main()
  13. {
  14.    //Variables de uso interno del programa
  15.    int continuar = 1,i,factorial = 1;
  16.    //Variables para entrada de datos
  17.    int opcion,numero1,numero2,numero_factorial,multiplicando,multiplicador;
  18.    char operador;
  19.    do
  20.    {
  21.        //Menu principal
  22.        printf("CALCULADORA v1.0\n\n");
  23.        printf("Elige una de las siguientes opciones:\n");
  24.        printf("1. Aritmetica simple con suma de enteros a+b\n");
  25.        printf("2. Aritmetica extendida binaria\n");
  26.        printf("3. Factorial de n (n!)\n");
  27.        printf("4. Detallar una tabla de multiplicar\n");
  28.        printf("5. Salir\n");
  29.        printf("Opcion a elegir? ");
  30.        ingresarDato(&opcion);
  31.        switch(opcion)
  32.        {
  33.            //Aritmetica simple con suma de enteros a+b
  34.            case ARITMETICA_SIMPLE:
  35.               printf("Dame el valor de a = ");
  36.               ingresarDato(&numero1);
  37.               printf("Dame el valor de b = ");
  38.               ingresarDato(&numero2);
  39.               printf("%d + %d = %d",numero1,numero2,numero1+numero2);
  40.               break;
  41.            //Aritmetica extendida binaria (+,-,*,/,%modulo)
  42.            case ARITMETICA_BINARIA:
  43.               printf("Escribe el operador (+,-,*,/,%%): ");
  44.               ingresarDato(&operador);
  45.               printf("\nDame el valor de a = ");
  46.               ingresarDato(&numero1);
  47.               printf("Dame el valor de b = ");
  48.               ingresarDato(&numero2);
  49.               switch(operador)
  50.               {
  51.                   case '+':
  52.                      printf("%d %c %d = %d\n",numero1,operador,numero2,numero1+numero2);
  53.                      break;
  54.                   case '-':
  55.                      printf("%d %c %d = %d\n",numero1,operador,numero2,numero1-numero2);
  56.                      break;
  57.                   case '*':
  58.                      printf("%d %c %d = %d\n",numero1,operador,numero2,numero1*numero2);
  59.                      break;
  60.                   case '/':
  61.                      printf("%d %c %d = %d\n",numero1,operador,numero2,numero1/numero2);
  62.                      break;
  63.                   case '%':
  64.                      printf("%d %c %d = %d\n",numero1,operador,numero2,numero1%numero2);
  65.                      break;
  66.                   default:
  67.                      printf("No hay un resultado calculable\n");
  68.                      printf("%d %c %d = 0\n",numero1,operador,numero2);
  69.               }
  70.               break;
  71.            //Factorial de n (n!)
  72.            case FACTORIAL:
  73.               printf("Dame el valor de n = ");
  74.               ingresarDato(&numero_factorial);
  75.               if(numero_factorial < 0)
  76.                  printf("El factorial de %d no esta definido\n",numero_factorial);
  77.               else if(numero_factorial == 0)
  78.                  printf("El factorial de 0 es 1\n");
  79.               else
  80.               {
  81.                   for(i = numero_factorial;i > 0;i--)
  82.                      factorial*=i;
  83.                   printf("El factorial de %d es %d\n",numero_factorial,factorial);
  84.               }
  85.               break;
  86.            //Detallar una tabla de multiplicar
  87.            case TABLA_MULTIPLICAR:
  88.               printf("Dame el multiplicando i = ");
  89.               ingresarDato(&multiplicando);
  90.               printf("Dame hasta cual multiplicador n= ");
  91.               ingresarDato(&multiplicador);
  92.               printf("Tabla de multiplicar del %d\n",multiplicador);
  93.               i = 1;
  94.               while(i <= multiplicador)
  95.               {
  96.                   printf("%d\tX\t%d\t=\t%d\n",multiplicando,i,multiplicando*i);
  97.                   i++;
  98.               }
  99.               break;
  100.            //Salida del programa
  101.            case SALIR:
  102.               continuar = 0;
  103.               break;
  104.            default:
  105.               printf("Opcion no valida!\n");
  106.        }
  107.        if(continuar)
  108.           system("pause");
  109.    }while(continuar);
  110.    return 0;
  111. }
  112.  
  113. void ingresarDato(void *dato)
  114. {
  115.    char buffer[TAM];
  116.    fgets(buffer,sizeof(buffer),stdin);
  117.    sscanf(buffer,"%d",dato);
  118. }
  119.  

gracias
163  Informática / Hardware / Arquitectura de Von Newmann vs. Arquitectura Harvard en: 6 Diciembre 2013, 01:46 am
Saludos

Tengo una duda, si en la Arquitectura de Harvard la CPU esta conectada a dos memorias independientes(una para datos, otra para instrucciones), la CPU puede acceder a ambas memorias simultaneamente, por tener dos buses diferentes y a mayor velocidad, entonces por que la Arquitectura de Von Neumman es más utilizada, si parece que la otra tiene mas ventajas??

gracias
164  Programación / Programación C/C++ / basura en mi programa en: 6 Diciembre 2013, 00:47 am
Saludos estoy haciendo un programa que contiene un menu para elegir diferentes operaciones aritmeticas, ya se que no se puede usar fflush(stdin) para limpiar el buffer, pero ya le puse el fgets + sscanf en las partes donde crei que me daba problemas pero aun asi sigue con basura, tengo que cambiar cada uno de los scanf() que tengo en mi codigo por un fgets + sscanf???? lo que pasa es que son muchisimos y crei que con solo ponerle 2 seria mas que suficiente

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define TAM 5
  4. #define ARITMETICA_SIMPLE 1
  5. #define ARITMETICA_BINARIA 2
  6. #define FACTORIAL 3
  7. #define TABLA_MULTIPLICAR 4
  8. #define SALIR 5
  9. int main()
  10. {
  11.    //Variables de uso interno del programa
  12.    int continuar = 1,i,factorial = 1;
  13.    //Variables para entrada de datos
  14.    int opcion,numero1,numero2,numero_factorial,multiplicando,multiplicador;
  15.    char operador,buffer[TAM];
  16.    do
  17.    {
  18.        //Menu principal
  19.        printf("CALCULADORA v1.0\n\n");
  20.        printf("Elige una de las siguientes opciones:\n");
  21.        printf("1. Aritmetica simple con suma de enteros a+b\n");
  22.        printf("2. Aritmetica extendida binaria\n");
  23.        printf("3. Factorial de n (n!)\n");
  24.        printf("4. Detallar una tabla de multiplicar\n");
  25.        printf("5. Salir\n");
  26.        printf("Opcion a elegir? ");
  27.        fgets(buffer,sizeof(buffer),stdin);
  28.        sscanf(buffer,"%d",&opcion);
  29.        switch(opcion)
  30.        {
  31.            //Aritmetica simple con suma de enteros a+b
  32.            case ARITMETICA_SIMPLE:
  33.               printf("Dame el valor de a = ");
  34.               scanf("%d",&numero1);
  35.               printf("Dame el valor de b = ");
  36.               scanf("%d",&numero2);
  37.               printf("%d + %d = %d",numero1,numero2,numero1+numero2);
  38.               break;
  39.            //Aritmetica extendida binaria (+,-,*,/,%modulo)
  40.            case ARITMETICA_BINARIA:
  41.               printf("Escribe el operador (+,-,*,/,%%): ");
  42.               fgets(buffer,sizeof(buffer),stdin);
  43.               sscanf(buffer,"%c",&operador);
  44.               printf("\nDame el valor de a = ");
  45.               scanf("%d",&numero1);
  46.               printf("Dame el valor de b = ");
  47.               scanf("%d",&numero2);
  48.               switch(operador)
  49.               {
  50.                   case '+':
  51.                      printf("%d %c %d = %d\n",numero1,operador,numero2,numero1+numero2);
  52.                      break;
  53.                   case '-':
  54.                      printf("%d %c %d = %d\n",numero1,operador,numero2,numero1-numero2);
  55.                      break;
  56.                   case '*':
  57.                      printf("%d %c %d = %d\n",numero1,operador,numero2,numero1*numero2);
  58.                      break;
  59.                   case '/':
  60.                      printf("%d %c %d = %d\n",numero1,operador,numero2,numero1/numero2);
  61.                      break;
  62.                   case '%':
  63.                      printf("%d %c %d = %d\n",numero1,operador,numero2,numero1%numero2);
  64.                      break;
  65.                   default:
  66.                      printf("No hay un resultado calculable\n");
  67.                      printf("%d %c %d = 0\n",numero1,operador,numero2);
  68.               }
  69.               break;
  70.            //Factorial de n (n!)
  71.            case FACTORIAL:
  72.               printf("Dame el valor de n = ");
  73.               scanf("%d",&numero_factorial);
  74.               if(numero_factorial < 0)
  75.                  printf("El factorial de %d no esta definido\n",numero_factorial);
  76.               else if(numero_factorial == 0)
  77.                  printf("El factorial de 0 es 1\n");
  78.               else
  79.               {
  80.                   for(i = numero_factorial;i > 0;i--)
  81.                      factorial*=i;
  82.                   printf("El factorial de %d es %d\n",numero_factorial,factorial);
  83.               }
  84.               break;
  85.            //Detallar una tabla de multiplicar
  86.            case TABLA_MULTIPLICAR:
  87.               printf("Dame el multiplicando i = ");
  88.               scanf("%d",&multiplicando);
  89.               printf("Dame hasta cual multiplicador n= ");
  90.               scanf("%d",&multiplicador);
  91.               printf("Tabla de multiplicar del %d\n",multiplicador);
  92.               i = 1;
  93.               while(i <= multiplicador)
  94.               {
  95.                   printf("%d\tX\t%d\t=\t%d\n",multiplicando,i,multiplicando*i);
  96.                   i++;
  97.               }
  98.               break;
  99.            //Salida del programa
  100.            case SALIR:
  101.               continuar = 0;
  102.               break;
  103.            default:
  104.               printf("Opcion no valida!\n");
  105.        }
  106.        if(continuar)
  107.           system("pause");
  108.    }while(continuar);
  109.    return 0;
  110. }
  111.  

de antemano gracias
165  Programación / Programación C/C++ / problema al abrir archivo en: 4 Diciembre 2013, 22:13 pm
Saludos, tengo un archivo.txt guardado en x ruta, y quiero abrirlo en modo de solo lectura, pero tengo la duda si debo ingresarle en la funcion fopen la ruta completa donde se encuentra el archivo, o si puedo hacerlo de esta manera, el archivo se encuentra en el escritorio pero si lo hago de esta manera me imprime que no se pudo abrir archivo

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.    FILE *fd;
  7.    if((fd = fopen("P1ASM.txt","r"))!= NULL)
  8.    {
  9.        printf("Si se pudo abrir archivo");
  10.    }
  11.    else
  12.       printf("No se pudo abrir el archivo");
  13.    return 0;
  14. }

de antemano gracias
166  Programación / Programación C/C++ / varias listas ligadas en: 4 Diciembre 2013, 00:20 am
Saludos

Si tengo un codigo en el que tengo que crear diferentes listas simplemente ligadas, tendria que hacerlo como un arreglo de punteros?? para que cada uno de esos punteros apunte al primer nodo de la lista??

167  Foros Generales / Dudas Generales / Duda de matematicas en: 1 Diciembre 2013, 03:32 am
Saludos

Tengo una duda respecto a unos ejercicios de matematicas, se que este es un foro de informatica y no de mate, pero espero que me pudieran ayudar con esto:

el ejercicio dice:  encuentra el orden de las siguientes expresiones:

a ) 3n! + 100 n^100
b) 3^(n+1) + 10^ n/2

tengo entendido que el orden de la suma de unas expresiones algebraicas es el el orden del mayor elemento o algo asi, como por ejemplo si tengo:

3n^2 + 5n + 2, el orden va a ser el mayor o sea n^2, pero de las expresiones anteriores no se como calcularlos porque tienen factoriales y n/2

gracias
168  Programación / Programación C/C++ / Caballos en: 27 Noviembre 2013, 21:02 pm
Saludos, tengo un programa que dado un tamaño n de un tablero, me diga cual es el numero maximo de caballos que se pueden colocar en ese tablero sin atacarse? y de cuantas formas, el programa me tiene que dar maximo 10 soluciones solamente.

e hice un codigo que me pida una (x,y) aleatoria para poner en esa casilla al caballo y despues calcular los 8 movimientos posibles y asegurarme que no haya otra pieza en ninguna de esas 8 casillas que marque, para que no se ataquen,en caso de que si haya otro caballo que pueda atacar pedir otra (x,y) aleatoria, y asi sucesivamente hasta que tengo el total de caballos en el tablero, como son 10 tableros maximo, a cada uno le saco el numero total de caballos y esos totales los almaceno en un arreglo para despues buscar con una funcion el mayor de ellos. y ese seria mi maximo. Pero el problema es que ese no es el maximo, porque solo son 10 tableros, pero por ejemplo si fueran 20 tableros a los que les calculo su total de caballos puede ser que en alguno de esos haya un numero de caballos mayor que al mayor que calcule de los 10 tableros que tenia

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <time.h>
  5. #define NO_CASILLAS_DISPONIBLES 0
  6. #define MAX_SOLUCIONES 10
  7.  
  8. void inicializarTablero(char **tablero,int n);
  9. int insertarCaballos(char **tablero,int fila,int columna,int casillasDisponibles,int numCaballos,int n);
  10. int verificarMovimientos(char **tablero,int fila,int columna,int casillasDisponibles,int n);
  11. void imprimirTablero(char **tablero,int n);
  12. int maximoCaballos(int totalCaballos[]);
  13.  
  14. int main()
  15. {
  16.    FILE *fd;
  17.    int n,i,j = 0,fila,columna,numCaballos,totalCaballos[MAX_SOLUCIONES],casillasDisponibles,MaxCaballos;
  18.    char **tablero;
  19.    do
  20.    {
  21.        printf("Dame tamanio de tablero: ");
  22.        scanf("%d",&n);
  23.    }while(n < 2 || n > 20);/*
  24.     if((fd = fopen("caballos_xx.txt","w"))!=NULL)
  25.     {*/
  26.        srand(time(NULL));
  27.        tablero = malloc(n*sizeof(char*));
  28.        for(i = 0;i < n;i++)
  29.           tablero[i] = malloc(n);
  30.        while(j < MAX_SOLUCIONES)
  31.        {
  32.            numCaballos = 0;
  33.            casillasDisponibles = n*n;
  34.            fila = rand() % n;
  35.            columna = rand() % n;
  36.            printf("(%d,%d)\n",fila,columna);
  37.            inicializarTablero(tablero,n);
  38.            totalCaballos[j] = insertarCaballos(tablero,fila,columna,casillasDisponibles,numCaballos,n);
  39.            imprimirTablero(tablero,n);
  40.            printf("\n\nEl numero maximo de caballos en esta solucion es de %d\n",totalCaballos[j]);
  41.            j++;
  42.        }
  43.        MaxCaballos = maximoCaballos(totalCaballos);
  44.        printf("\nEl numero maximo de caballos en un tablero de %d x %d sin atacarse es %d\n",n,n,MaxCaballos);/*
  45.     }
  46.     else
  47.        printf("No se pudo crear archivo");*/
  48.    return 0;
  49. }
  50.  
  51. void inicializarTablero(char **tablero,int n)
  52. {
  53.    int i,j;
  54.    for(i = 0;i < n;i++)
  55.    {
  56.        for(j = 0;j < n;j++)
  57.           tablero[i][j] = '0';
  58.    }
  59. }
  60.  
  61. int insertarCaballos(char **tablero,int fila,int columna,int casillasDisponibles,int numCaballos,int n)
  62. {
  63.    if(casillasDisponibles > NO_CASILLAS_DISPONIBLES)
  64.    {
  65.        if(tablero[fila][columna] == '0')
  66.        {
  67.            tablero[fila][columna] = 'C';
  68.            casillasDisponibles = verificarMovimientos(tablero,fila,columna,casillasDisponibles,n);
  69.            numCaballos++;
  70.            fila = rand() % n;
  71.            columna = rand() %n;
  72.            insertarCaballos(tablero,fila,columna,casillasDisponibles,numCaballos,n);
  73.        }
  74.        else
  75.        {
  76.            fila = rand() % n;
  77.            columna = rand() %n;
  78.            insertarCaballos(tablero,fila,columna,casillasDisponibles,numCaballos,n);
  79.        }
  80.    }
  81.    else
  82.       return numCaballos;
  83. }
  84.  
  85. int verificarMovimientos(char **tablero,int fila,int columna,int casillasDisponibles,int n)
  86. {
  87.    int i,j,nuevaFila,nuevaColumna,eliminadas;
  88.    eliminadas = casillasDisponibles-1;
  89.    nuevaFila = fila + 2;
  90.    nuevaColumna = columna -1;
  91.    if((nuevaFila>=0&&nuevaFila<n)&&(nuevaColumna>=0&&nuevaColumna<n)&&(tablero[nuevaFila][nuevaColumna]=='0'))
  92.    {
  93.        tablero[nuevaFila][nuevaColumna] = 'x';
  94.        eliminadas--;
  95.    }
  96.    nuevaFila = fila + 2;
  97.    nuevaColumna = columna + 1;
  98.    if((nuevaFila>=0&&nuevaFila<n)&&(nuevaColumna>=0&&nuevaColumna<n)&&(tablero[nuevaFila][nuevaColumna]=='0'))
  99.    {
  100.        tablero[nuevaFila][nuevaColumna] = 'x';
  101.        eliminadas--;
  102.    }
  103.    nuevaFila = fila + 1;
  104.    nuevaColumna = columna - 2;
  105.    if((nuevaFila>=0&&nuevaFila<n)&&(nuevaColumna>=0&&nuevaColumna<n)&&(tablero[nuevaFila][nuevaColumna]=='0'))
  106.    {
  107.        tablero[nuevaFila][nuevaColumna] = 'x';
  108.        eliminadas--;
  109.    }
  110.    nuevaFila = fila + 1;
  111.    nuevaColumna = columna + 2;
  112.    if((nuevaFila>=0&&nuevaFila<n)&&(nuevaColumna>=0&&nuevaColumna<n)&&(tablero[nuevaFila][nuevaColumna]=='0'))
  113.    {
  114.        tablero[nuevaFila][nuevaColumna] = 'x';
  115.        eliminadas--;
  116.    }
  117.    nuevaFila = fila - 2;
  118.    nuevaColumna = columna - 1;
  119.    if((nuevaFila>=0&&nuevaFila<n)&&(nuevaColumna>=0&&nuevaColumna<n)&&(tablero[nuevaFila][nuevaColumna]=='0'))
  120.    {
  121.        tablero[nuevaFila][nuevaColumna] = 'x';
  122.        eliminadas--;
  123.    }
  124.    nuevaFila = fila - 2;
  125.    nuevaColumna = columna + 1;
  126.    if((nuevaFila>=0&&nuevaFila<n)&&(nuevaColumna>=0&&nuevaColumna<n)&&(tablero[nuevaFila][nuevaColumna]=='0'))
  127.    {
  128.        tablero[nuevaFila][nuevaColumna] = 'x';
  129.        eliminadas--;
  130.    }
  131.    nuevaFila = fila - 1;
  132.    nuevaColumna = columna - 2;
  133.    if((nuevaFila>=0&&nuevaFila<n)&&(nuevaColumna>=0&&nuevaColumna<n)&&(tablero[nuevaFila][nuevaColumna]=='0'))
  134.    {
  135.        tablero[nuevaFila][nuevaColumna] = 'x';
  136.        eliminadas--;
  137.    }
  138.    nuevaFila = fila - 1;
  139.    nuevaColumna = columna + 2;
  140.    if((nuevaFila>=0&&nuevaFila<n)&&(nuevaColumna>=0&&nuevaColumna<n)&&(tablero[nuevaFila][nuevaColumna]=='0'))
  141.    {
  142.        tablero[nuevaFila][nuevaColumna] = 'x';
  143.        eliminadas--;
  144.    }
  145.    return eliminadas;
  146. }
  147.  
  148. void imprimirTablero(char **tablero,int n)
  149. {
  150.     int i,j;
  151.     for(i = 0;i < n;i++)
  152.     {
  153.         printf("\n");
  154.         for(j = 0;j < n;j++)
  155.            printf("[%c]",tablero[i][j]);
  156.     }
  157.     printf("\n");
  158. }
  159.  
  160. int maximoCaballos(int totalCaballos[])
  161. {
  162.     int Maximo,i;
  163.     Maximo = totalCaballos[0];
  164.     for(i = 1;i < MAX_SOLUCIONES;i++)
  165.     {
  166.         if(totalCaballos[i] > Maximo)
  167.            Maximo = totalCaballos[i];
  168.     }
  169.     return Maximo;
  170. }
  171.  
  172.  

este es el codigo, pero no entiendo como puedo hacer que me saque el maximo posible sin necesidad de cambiar todo el codigo, me costo un poco de trabajo hacerlo y entender como iba a ser el algoritmo y todo, por eso no  quiero empezar desde 0, si pudieran ayudarme se los agradeceria muchisimo

de antemano gracias
169  Programación / Programación C/C++ / abrir archivo con default en: 26 Noviembre 2013, 22:08 pm
Saludos, yo siempre que utilizo archivos los creo y abro  indicandole al fopen que quiero crear mi archivo en la USB, pero ahora quiero usar la forma default solo que no se como hacerlo ni donde me va a crear y guardar los archivos:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void crearTablero(int n,int **tablero);
  5.  
  6. int main()
  7. {
  8.    FILE *pd;
  9. if((pd = fopen("F:\\archivo.txt","w"))!= NULL)
  10.   printf("Se ha creado archivo");
  11. }
  12.  

de antemano gracias
170  Programación / Programación C/C++ / memoria dinamica y funciones en: 25 Noviembre 2013, 03:09 am
saludos

tengo el siguiente codigo en el que le asigno memoria dinamica a una matriz en lenguaje C para poder ingresarle x numero de datos, el problema que tengo es que si quiero pasarle la matriz a una funcion para dentro de esta asignarle memoria dinamica el programa me truena, pero si se la asigno dentro del main el programa funciona correctamente y no se a que se debe, este es el codigo que me truena:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void inicializaTablero(char **tablero,int n);
  5.  
  6. int main()
  7. {
  8.    int n,i,j;
  9.    char **tablero;
  10.    printf("Dame tamanio de tablero: ");
  11.    scanf("%d",&n);
  12.    inicializaTablero(tablero,n);
  13.    for(i = 0;i < n;i++)
  14.    {
  15.        printf("\n");
  16.        for(j = 0;j < n;j++)
  17.        printf("[%c]",tablero[i][j]);
  18.    }
  19.    return 0;
  20. }
  21.  
  22. void inicializaTablero(char **tablero,int n)
  23. {
  24.    int i,j,k;
  25.     tablero = (char**)malloc(n*sizeof(char*));
  26.    for(i = 0;i < n;i++)
  27.       tablero[i] = (char*)malloc(n);
  28.    for(j = 0;j < n;j++)
  29.    {
  30.        for(k = 0;k < n;k++)
  31.           tablero[j][k] = '0';
  32.    }
  33. }
  34.  


y de esta manera si funciona:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.    int n,i,j,k;
  7.    char **tablero;
  8.    printf("Dame tamanio de tablero: ");
  9.    scanf("%d",&n);
  10.    tablero = (char**)malloc(n*sizeof(char*));
  11.    for(i = 0;i < n;i++)
  12.       tablero[i] = (char*)malloc(n);
  13.    for(j = 0;j < n;j++)
  14.    {
  15.        for(k = 0;k < n;k++)
  16.           tablero[j][k] = '0';
  17.    }
  18.    for(i = 0;i < n;i++)
  19.    {
  20.        printf("\n");
  21.        for(j = 0;j < n;j++)
  22.        printf("[%c]",tablero[i][j]);
  23.    }
  24.    return 0;
  25. }
  26.  

de antemano gracias

Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ... 40
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines