|
261
|
Programación / Programación C/C++ / Re: scanf y gets
|
en: 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 / Programación C/C++ / Re: scanf y gets
|
en: 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 / Programación C/C++ / Re: scanf y gets
|
en: 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++)
aqui me imprime Enero Nero Ero pero si a la linea del printf le agrego unos parentesis
me imprime correctamente Enero Febrero Marzo no entiendo por que
|
|
|
265
|
Programación / Programación C/C++ / Re: scanf y gets
|
en: 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
y tambien sale una nota que dice expected char* but argument is of type char** gracias
|
|
|
266
|
Programación / Programación C/C++ / scanf y gets
|
en: 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); }
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); }
si alguien fuera tan amable de explicarme esto se lo agradeceria mucho
|
|
|
268
|
Programación / Programación C/C++ / arreglos bidimensionales y funciones
|
en: 13 Julio 2013, 00:32 am
|
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 / Programación C/C++ / problema con parametros
|
en: 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: "); printf("Dame el numero de columnas: "); 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
|
Programación / Programación C/C++ / Re: matriz de caracteres
|
en: 7 Julio 2013, 01:50 am
|
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: "); printf("Dame el numero de columnas: "); 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; }
|
|
|
|
|
|
|