|
Mostrar Mensajes
|
Páginas: [1] 2
|
2
|
Programación / Programación C/C++ / Convertir matriz Char a Int con atoi
|
en: 8 Agosto 2012, 20:02 pm
|
Disculpen, quiero convertir el contenido de una matriz q leo como char y luego copiarla a otra matriz pero como entero (usando atoi), ya lo intente pero supongo q algo tengo mal: Ejemplo: tengo la siguiente mariz 123 45 12 67 44 89 123 678 estan los numeros separados ppor espacios pero cuando lo hago no me lee bien, aki el codigo [code]char* M[filas][columnas]; for (i=0; i<filas;i++) for (j=0;j<columnas;j++) Mat[i][j]= atoi(M[i][j]);
[/code] y no hace lo q quiero sino q imprime por ejemplo: 1 23 4 5 12 6 7 4 89 y ni termina de imprimirlos, espero me puedan ayudar xfavor
|
|
|
4
|
Programación / Programación C/C++ / Punteros y ¿Listas?
|
en: 2 Agosto 2012, 20:41 pm
|
Hola, me piden que cree un especie de estructura de datos con punteros; estos punteros almacenaran la dir de memoria de un elemento ya sea de un vector o matriz, el problema es q no tengo ni idea de como hacer eso, dejo un codigo q hizo otra persona pero la verdad no le entiendo: #include <stdio.h> #include <stdlib.h>
typedef struct{ int *aptInicio; int contador; int dato; int *refDatoIntSc; int *refDatoIntSf; }estructurafc;
estructurafc llenarMatriz(int valor, estructurafc c){ estructurafc nuevaCelda; if((c.contador > 0)){
nuevaCelda.aptInicio = c.refDatoIntSc; nuevaCelda.contador = c.contador + 1; nuevaCelda.dato = valor; nuevaCelda.refDatoIntSc = NULL; nuevaCelda.refDatoIntSf = c.refDatoIntSf;
printf("valor de la estructurafc en aptInicio es = %p\n", nuevaCelda.aptInicio); printf("valor de la estructurafc en contador es = %d\n", nuevaCelda.contador); printf("valor de la estructurafc en dato es = %d\n", nuevaCelda.dato); printf("valor de la estructurafc en refDatoIntSc es = %p\n", nuevaCelda.refDatoIntSc); printf("valor de la estructurafc en refDatoIntSf es = %p\n", nuevaCelda.refDatoIntSf);
}else{///cuando se inicia la primera estructura nuevaCelda.aptInicio = malloc(sizeof(int)); nuevaCelda.contador = 1; nuevaCelda.dato = valor; nuevaCelda.refDatoIntSc = (nuevaCelda.aptInicio + 1); nuevaCelda.refDatoIntSf = (nuevaCelda.aptInicio + 2);
printf("valor de la estructurafc en aptInicio es = %p\n", nuevaCelda.aptInicio); printf("valor de la estructurafc en contador es = %d\n", nuevaCelda.contador); printf("valor de la estructurafc en dato es = %d\n", nuevaCelda.dato); printf("valor de la estructurafc en refDatoIntSc es = %p\n", nuevaCelda.refDatoIntSc); printf("valor de la estructurafc en refDatoIntSf es = %p\n", nuevaCelda.refDatoIntSf); } return nuevaCelda; }
int main(void){
int i = 0;
estructurafc prueba; //llenarMatriz(3, prueba); llenarMatriz(4, llenarMatriz(3, prueba));
/*for(i = 0; i < 2; i++) { }*/
return(0); }
es como si quisiera usar listas pero eso tambien me confunde!! :s
|
|
|
5
|
Programación / Programación C/C++ / Re: Funciones en C, Ayuda!!
|
en: 23 Julio 2012, 18:04 pm
|
Ammm, perdon por las molestias otra vez, resulta q segun yo hice mis funciones, pero no estan bien xq me marca muchos errores; # include <conio.h>
# include <stdio.h>
void ordenar (float num[], int t) { int i,e; float aux; for (i=1;i<t;i++) for (e=0; e<t-1;e++) if (num[e]>num[e+1]) { aux= num[e]; // la variable aux nos ayuda a cambiar de posicion los valores del vector num[e]=num[e+1]; num[e+1]=aux; } }
float minmax (int i, int t, float num [], float min, float max) { min=num[0]; //Se establece con el valor del primer indice para despues comparar si el indice siguiente es menor max=num[0]; //Se establece con el valor del primer indice para despues comparar si el indice siguiente es mayor for (i=1;i<=t-1;i++) { if (num[i]<min) min=num[i]; if (num[i]>max) max=num[i]; } return min, max; }
/*imprimir (int i, int t, float num[]) { for(i=0;i<t;i++) { printf("%f",num[i]); printf("\n"); } return;
} */
float medianum (int i, int t, float num[], float suma, float media) {
for(i=0;i<t;i++) { suma=suma+num[i];
media=suma/t;} return media; }
float median ( int t, float num[], float mediana) { mediana=0; if(t%2==0) { t=t/2; mediana=(num[t]+num[t-1])/2; } else { t=(t-1)/2; mediana=num[t]; } return mediana; }
void llenarArreglo(float num[], int t, int i) {
for (i=0;i<t;i++) { printf("Numero para el lugar %d del arreglo: ",i); scanf("%f", &num[t]); } }
main () { int t,i=0; float num[1], min=0, max=0, mediana=0, media=0; clrscr(); printf("Cual es el tamano del arreglo: "); scanf("%f", &t); num[t];
llenarArreglo(num, t, i); ordenar(num, t); minmax (min, max); //imprimir (); medianum (media); median(mediana);
printf("La media es: %f \n",media); printf("La mediana es: %f \n",mediana); printf("Minimo: %f, Maximo: %f \n",min,max);
getch(); return 0; }
Me sale un error en algunas donde me dice q son muy pocos parametros los q uso para llamar la funcion, espero puedan ayudarme:
|
|
|
7
|
Programación / Programación C/C++ / Funciones en C, Ayuda!!
|
en: 20 Julio 2012, 19:11 pm
|
Hola, tengo el siguiente codigo y me gustaria pasarlo a funciones para que despues las pueda reutilizar, si me pudieran ayudar al menos con una porfavor, yo me encargaria de pasar las demas a como pueda: #include <stdio.h> #include <conio.h> float num[10],aux=0,min,max; int i,e,t; void main (){ clrscr(); // ASIGNAMOS UN TAMAÑO AL VECTOR, ELEGIDO POR EL USUARIO printf("Cual es el tamano del arreglo: "); scanf("%d", &t); num[t]; // RELLENAMOS LAS POSICIONES DEL VECTOR for (i=0;i<t;i++) { printf("Numero para el lugar %d del arreglo: ",i); scanf("%f", &num ); } // ORDENAMOS DE MENOR A MAYOR LOS VALORES DEL VECTOR for (i=1;i<t;i++) for (e=0; e<t-1;e++) if (num[e]>num[e+1]) { aux= num[e]; // la variable aux nos ayuda a cambiar de posicion los valores del vector num[e]=num[e+1]; num[e+1]=aux; }
// SE ESTABLECEN LOS VALORES MINIMOS Y MAXIMOS min=num[0]; //Se establece con el valor del primer indice para despues comparar si el indice siguiente es menor max=num[0]; //Se establece con el valor del primer indice para despues comparar si el indice siguiente es mayor for (i=1;i<=t-1;i++) { if (num<min) min=num; if (num>max) max=num; }
// SE IMPRIME EL VECTOR CON LOS VALORES ORDENADOS for(i=0;i<t;i++) { printf("%f",num); printf("\n"); }
// CALCULAMOS LA MEDIA O EL PROMEDIO DE TODOS LOS ELEMENTOS DEL VECTOR float suma=0; float media=0; for(i=0;i<t;i++) { suma=suma+num;
media=suma/t;}
// CALCULAMOS LA MEDIANA DEL CONJUNTO DE VALORES float mediana=0; if(t%2==0) { t=t/2; mediana=(num[t]+num[t-1])/2; } else { t=(t-1)/2; mediana=num[t]; }
printf("La media es: %f \n",media); printf("La mediana es: %f \n",mediana); printf("Minimo: %f, Maximo: %f \n",min,max); getch();
}
El codigo no es muy avanzado, por que yo no se programar mucho en C.
|
|
|
8
|
Programación / Programación C/C++ / Re: Matrices en C/C++ Urgente!!!
|
en: 18 Julio 2012, 20:01 pm
|
Cierto, hacerlo con structs es más fácil que como yo se lo he explicado.
Gracias! De hecho para leer el archivo donde lo tengo (.csv), tambien encontre un ejemplo donde manejan este tipo de estructuras (supongo q son similares)! Intentaré de esa forma....
|
|
|
9
|
Programación / Programación C/C++ / Re: Matrices en C/C++ Urgente!!!
|
en: 18 Julio 2012, 07:06 am
|
A ver, fijándonos en la función que puse antes, mi idea es que en la función, todas las variables que se llaman a seguido de un índice sean las características de un elemento, y las que tienen de nombre b seguido de un índice sean las de otro.
Por ejemplo, queremos intercambiar las características del Rutenio y las del Bismuto en el vector. Pues a1 será el peso del Rutenio, y b1 el peso del Bismuto; a2 la masa atómica del Rutenio, y b2 la masa atómica del Bismuto. Así, con tantas características como te hayan indicado que debas intercambiar.
Saludos!
Creo que eso si lo entendi, muchas gracias, lo intentare a ver q tal!!
|
|
|
10
|
Programación / Programación C/C++ / Re: Matrices en C/C++ Urgente!!!
|
en: 17 Julio 2012, 21:07 pm
|
Hola. Para sacar máximos y mínimos no tiene que estar ordenada la estructura. Ejemplo: int max = array[0]; for(i = 0; i < n; i++) { if(array[i] > max) { max = array[i]; } } Lo mismo para el mínimo. Sip en eso realmente no tengo mucho problema, el problema por ejemplo es para la mediana, ahi si tienen q estar ordenados para q la mediana sea la correcta!!
|
|
|
|
|
|
|