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 - m@o_614

#261
Programación C/C++ / Re: scanf y gets
19 Julio 2013, 01:13 AM
Caster si es un arreglo de punteros tengo que asignarle memoria a cada uno de los 5 punteros de char *a[5]????por eso pusiste:

a[i] = (char *) malloc(n * sizeof(char));

y la n para que es???

gracias
#262
Programación C/C++ / Re: scanf y gets
18 Julio 2013, 20:23 PM
Muchas gracias eferion por tus respuestas ahora ya me quedo claro, solo es cuestion de repasar las prioridades de los operadores (),[],*,+, etc...


Una ultima pregunta cuando yo declaro un arreglo de punteros char *a[5]; para despues con un for ingresarle cada uno de los elementos (a+1),(a+2),etc..., primero tengo que asignarle memoria dinamica con malloc, calloc ???
#263
Programación C/C++ / Re: scanf y gets
17 Julio 2013, 21:32 PM
y otra duda tambien de un vector de punteros

por ejemplo si tengo

char *meses[3] ={"Enero","Febrero","Marzo"};
for(i=0;i < 3;i++)
    printf("%s",*meses+i);



aqui me imprime Enero Nero Ero

pero si a la linea del printf le agrego unos parentesis
printf("%s",*(meses+i));

me imprime correctamente Enero Febrero Marzo

no entiendo por que
     
#264
Programación C/C++ / Re: scanf y gets
17 Julio 2013, 21:25 PM
eferion como es eso de que *arreglo[10] es equivalente a **arreglo???
#265
Programación C/C++ / Re: scanf y gets
17 Julio 2013, 03:11 AM
saludos amchacon el tipo de dato es char *arreglo[10] y el warning dice:

passing argument 1 of gets from incompatible pointer type

esto en la linea
gets(nombre+i);

y tambien sale una nota que dice expected char* but argument is of type char**

gracias
#266
Programación C/C++ / scanf y gets
17 Julio 2013, 02:37 AM
saludos

si tengo que ingresar en un vector 10 datos, por ejemplo: nombres, estos nombres tienen diferente longitud entonces tendria que poner char *nombre[10] pero a la hora de querer ingresar los datos con gets me aparecen warnings

for(i=0;i < 10;i++)
    {
        printf("Dame el nombre numero %d: ",i+1);
        gets(nombre+i);
        system("cls");
    }


pero si cambio el gets por scanf de esta manera ya no me aparece y no entiendo porque

for(i=0;i < 10;i++)
    {
        printf("Dame el nombre numero %d: ",i+1);
        scanf("%s",nombre+i);
        system("cls");
    }


si alguien fuera tan amable de explicarme esto se lo agradeceria mucho
#267
muchas gracias por tu respuesta, una ultima duda, por que utilizas el typedef???
#268
Saludos

Tengo una duda de como pasar un arreglo bidimensional a una  funcion cualquiera, si tengo una matriz que se llama multi[filas][columnas] y la quiero pasar a una funcion con la siguiente llamada:

set_value(multi);

por que en la funcion tengo que dejar el corchete[] de las filas vacio y el de las columnas con su respectivo tamanio es algo que no termino de entender y queria saber si alguien me lo podia explicar:

void set_value(int m_arreglo[][COLUMNAS])
{
     //Cuerpo de la funcion
}

de antemano gracias
#269
Programación C/C++ / problema con parametros
8 Julio 2013, 19:35 PM
Saludos tengo el siguiente problema al pasar una matriz bidimensional como parametro a una funcion, me sale un error que dice: array type has incomplete element type

#include <stdio.h>
#include <stdlib.h>
#define MAX 10

void burbuja_descendente(char matriz[][],int n,int m);

int main()
{
    int i,j,n,m;
    char matriz[MAX][MAX];
    printf("Dame el numero de filas: ");
    scanf("%d",&n);
    printf("Dame el numero de columnas: ");
    scanf("%d",&m);
    for(i=0;i < n;i++)
    {
        for(j=0;j < m;j++)
        {
            printf("Dame el elemento (%d,%d):\n",i,j);
            scanf("%s",&matriz[i][j]);
        }
    }
    burbuja_descendente(matriz,n,m);
    return 0;
}

void burbuja_descendente(char matriz[][],int n,int m)
{
    int i,j,aux;
    for(i=1;i < n;i++)
    {
        for(j=0;j < m;j++)
        {
            if(j==n-1)
            {
                if(matriz[i][j] < matriz[i+1][0])
                {
                    aux = matriz[i][j];
                    matriz[i][j] = matriz[i+1][0];
                    matriz[i+1][0] = aux;
                }
            }
            else
            {
                if(matriz[i][j] < matriz[i][j+1])
                {
                    aux = matriz[i][j];
                    matriz[i][j] = matriz[i][j+1];
                    matriz[i][j+1] = aux;
                }
            }
        }
    }
}


de antemano gracias
#270
muchas gracias por sus respuestas una ultima pregunta

ahora tengo una matriz que me tiene que ingresar solamente numeros, ya le puse la condicion para que en caso de ingresar una letra u otro caracter me marque un error pero por ejemplo si me pide ingresar un numero y yo le pongo 12b aunque tenga una letra si me lo toma por bueno y quiero evitarlo,como lo haria?

int main()
{
    int i,j,n,m;
    char matriz[MAX][MAX];
    printf("Dame el numero de filas: ");
    scanf("%d",&n);
    printf("Dame el numero de columnas: ");
    scanf("%d",&m);
    for(i=0;i < n;i++)
    {
        for(j=0;j < m;j++)
        {
            printf("Dame el elemento (%d,%d):\n",i,j);
            scanf("%s",&matriz[i][j]);
            if(matriz[i][j] < 48 ||matriz[i][j] > 57 )
            {
                printf("Error!!Solo puede ingresar numeros\n");
                j--;
            }
        }
    }
    return 0;
}