|
Mostrar Mensajes
|
Páginas: [1] 2
|
1
|
Programación / Programación C/C++ / Re: Separa char para usar en otra variable
|
en: 22 Marzo 2017, 00:38 am
|
Un ejemplo con tus datos: #include <stdio.h> int main() { char nombreEdad[] = "Luis 20"; char nombre[20]; int edad; sscanf(nombreEdad , "%s %i", nombre , &edad ); printf("Nombre: %s\n", nombre ); }
Gracias por su ayuda me sirvió de mucho, pero se me presento otro problema no puedo leer numeros con 10 digitos, me lee perfecto hasta 9 numeros pero con 10 me sale un numero diferente al que leo, como podría solucionar esto ? gracias char datos[] = "1 2304872458"; int code; unsigned long code1; sscanf(datos, "%i %i", &code, &code1); printf("%i ",code); printf("%i ",code1);
//Solución %u, Gracias por la ayuda.
|
|
|
3
|
Programación / Programación C/C++ / Re: Separa char para usar en otra variable
|
en: 19 Marzo 2017, 00:32 am
|
Si sabes que la cadena a separar siempre tiene el mismo formato puedes usar sscanf.
No entiendo lo que me quieres decir. scanf ó cin son para pedir datos a los usuarios pero yo no necesito pedirselos ya que ya los tengo solo deseo separarlos y luego usarlos en variables diferentes.
|
|
|
4
|
Programación / Programación C/C++ / Separa char para usar en otra variable
|
en: 19 Marzo 2017, 00:18 am
|
// Estoy separando la variable (char) nombreEdad y funciona bien // El resultado por pantalla es : // Luis // 20 // Me gustaría saber como podría poner el nombre Luis en una variable char diferente, y el numero 20 en una variable de tipo int, espero me entiendan y puedan ayudar gracias. char nombreEdad[] = "Luis 20"; char* a; a = strtok(nombre, " "); while(a != NULL) { cout << a << endl; a = strtok(NULL, " "); }
|
|
|
5
|
Programación / Programación C/C++ / ir chequeando numeros en una matriz
|
en: 29 Abril 2016, 01:21 am
|
Tengo un problema con esto espero puedan ayudarme, si to tengo una matriz 116456 115456 234566 789123 Ejemplo si yo estoy en la casilla (0,0) & al parecer en este momento soy el numero "1" el cual esta rodeado por los numeros "2 , 3 , 4 , 5 , 6" Lo que yo quiero hacer es que cuando le de al numero EJEMPLO "6" mi matriz quede así, osea transforme todos los numeros que llevaba en el numero que voy a presionar. 666456 665456 234566 789123 & si le vuelvo a dar al numero 4 mi matriz quedaría así. 444456 445456 234566 789123 & si vuelvo a presionar el 5 quedaría así 555556 555556 234566 789123 Bueno así hasta llenar la matriz con 1 solo numero, el problema es que en mi código cuando yo presiono el numero cambia todos los números, no solo los que tengo alrededor. Los números que llevo deberían transformarse en el nuevo que acabo de presionar. espero su ayuda gracias. [HIGHLIGHT="C"] #include <stdio.h> #include <stdlib.h> #include <windows.h> #define filas 10 #define columnas 10 #define fico 10 void cargar_matriz(int matriz[][columnas]); void pintar_matriz(int matriz[][columnas]); void movimiento_matriz(int matriz[][columnas]); void jugar(int matriz[][columnas]); int i,j; int main() { int matriz[filas][columnas]; jugar(matriz); } void cargar_matriz(int matriz[][columnas]) { for(i = 0; i < filas; i++) { for(j = 0; j < columnas; j++) { matriz [i ][j ] = rand()%6+1; } } return; } void pintar_matriz(int matriz[][columnas]) { for(i = 0; i < filas; i++) { for(j = 0; j < columnas; j++) { } } SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),7); printf("\t1 \t2 \t3 \t4 \t5 \t6 \n"); SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),1); SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),2); SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),3); SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),4); SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),5); SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),6); movimiento_matriz(matriz); } void movimiento_matriz(int matriz[][columnas]){ int mycolor; mycolor = matriz[0][0]; matriz[0][0] = 10; char tecla; //matriz[0][0] = 10; switch (tecla) { case '1' : { for(i = 0; i < filas; i++) { for(j = 0; j < columnas; j++) { if(matriz[i][j] == mycolor ){ matriz[i][j] = 10; } } } for(i = 0; i < fico; i++) { for (j = 0; j < fico; j++){ if(matriz[i][j] == 10) { matriz[i][j] = 1; } } } break; } case '2' : { for(i = 0; i < filas; i++) { for(j = 0; j < columnas; j++) { if(matriz[i][j] == mycolor ) { matriz[i][j] = 10; } } } for(i = 0; i < fico; i++) { for (j = 0; j < fico; j++){ if(matriz[i][j] == 10) { matriz[i][j] = 2; } } } break; } case '3' : { for(i = 0; i < filas; i++) { for(j = 0; j < columnas; j++) { if(matriz[i][j] == mycolor ) { matriz[i][j] = 10; } } } for(i = 0; i < fico; i++) { for (j = 0; j < fico; j++){ if(matriz[i][j] == 10) { matriz[i][j] = 3; } } } break; } case '4' : { for(i = 0; i < filas; i++) { for(j = 0; j < columnas; j++) { if(matriz[i][j] == mycolor ) { matriz[i][j] = 10; } } } for(i = 0; i < fico; i++) { for (j = 0; j < fico; j++){ if(matriz[i][j] == 10) { matriz[i][j] = 4; } } } break; } case '5' : { for(i = 0; i < filas; i++) { for(j = 0; j < columnas; j++) { if(matriz[i][j] == mycolor ) { matriz[i][j] = 10; } } } for(i = 0; i < fico; i++) { for (j = 0; j < fico; j++){ if(matriz[i][j] == 10) { matriz[i][j] = 5; } } } break; } case '6' : { for(i = 0; i < filas; i++) { for(j = 0; j < columnas; j++) { if(matriz[i][j]== mycolor ) { matriz[i][j] = 10; } } } for(i = 0; i < fico; i++) { for (j = 0; j < fico; j++){ if(matriz[i][j] == 10) { matriz[i][j] = 6; } } } break; } default : { break; } } pintar_matriz(matriz); } void jugar(int matriz[][columnas]) { cargar_matriz(matriz); pintar_matriz(matriz); movimiento_matriz(matriz); }
|
|
|
6
|
Programación / Programación C/C++ / Re: Ordenar una matriz sin repetir numeros.
|
en: 24 Abril 2016, 22:27 pm
|
De entrada se me plantea una duda: Si la matriz ordenada no puede repetir ningún número puede que sea de menor tamaño que la matriz original. Siendo así: ¿La matriz ordenada debe ser la misma matriz original? Si la matriz original es estática, eso es definida del tipo T[dimY][dimX], no se puede reducir su tamaño. ¿Cómo se marcan las casillas vacías? ¿Cómo se distribuye la información en la matriz? Si la matriz original es dinámica se pueden reducir sus dimensiones pero de nuevo aparece el problema de como se distribuye el sistema si no se pueden cuadrar las dimensiones (número impar de elementos).
Entonces cuando cargo los números es que debería revisar si están repetido?
|
|
|
7
|
Programación / Programación C/C++ / Re: Ordenar una matriz sin repetir numeros.
|
en: 24 Abril 2016, 20:54 pm
|
Un ejemplo como podría hacer para que no se repitieran los números debería agregar una función o agregarlo a una de las que ya tengo. #include <stdio.h> #include <stdlib.h> #include <time.h> #define filas 5 #define columnas 5 void cargar_matriz(int matriz[filas][columnas]); void ordenar_matriz(int matriz[filas][columnas]); void imprimir_matriz(int matriz[filas][columnas]); int i,j,k,l; int main() { int matriz[filas][columnas]; cargar_matriz(matriz); ordenar_matriz(matriz); imprimir_matriz(matriz); return 0; }//Fin main void cargar_matriz(int matriz[filas][columnas]){ for(i = 0; i < filas; i++) { for(j = 0; j < columnas; j++) { matriz [i ][j ] = rand()%25+1; } } }//Fin función void ordenar_matriz(int matriz[filas][columnas]){ int mayor; for(i = 0; i < filas;i++) { for(j = 0; j < columnas;j++){ for(k = 0; k < 5;k ++) { for(l = 0; l < 5; l++) { if(matriz[i][j] < matriz[k][l]) { mayor = matriz[i][j]; matriz[i][j] = matriz[k][l]; matriz[k][l] = mayor; } } } } } }//Fin Función. void imprimir_matriz(int matriz[filas][columnas]){ for(i = 0; i < filas; i++) { for(j = 0; j < columnas; j++) { } } }//Fin función
|
|
|
8
|
Programación / Programación C/C++ / Ordenar una matriz sin repetir numeros.
|
en: 24 Abril 2016, 00:56 am
|
Hola a todos, una pregunta como podría ordenar esta matriz de números aleatorios & hacer que no se repitieran ? Gracias por cierto me recomiendan algun libro de C para leer o algo gracias. #include <stdio.h> #include <stdlib.h> #include <time.h> #define filas 5 #define columnas 5 int i,j; int main() { int num; int matriz[filas][columnas]; //num = rand()%1+9; for(i = 0; i < filas;i++) { for(j = 0; j < columnas;j++){ matriz [i ][j ] = rand()%9+1; } } return 0; }
|
|
|
9
|
Programación / Programación C/C++ / separar vectores & sumarlos?
|
en: 16 Marzo 2016, 23:18 pm
|
Hola amigos en este momento se me esta presentando una complicación para realizar este código, mi problema es el siguiente debería hacer esto de la imagen:http://prnt.sc/ag69x6 Ya separe los números en vectores tengo su resultado pero no se como podria hacer para realizar las operaciones que salen en la foto seria cortar el vector en 2 como & efectuar las diagonales a este proceso se le llama la multiplicación arabe, si tienen idea de como podria hacer se los agradecería. Llevo esto de código. #include <stdio.h> int main(){ int num,num2; int vector[20]; int a,b,c,d,e,f,g,h; printf("Ingrese el primero numero : "); if (num >= 0000){ if (num <= 9999){ a = num / 1000; b = (num % 1000) / 100; c = (num % 1000) % 100 / 10; d = ((num % 1000) % 100) % 10 / 1; } } printf("Ingrese el segundo numero : "); if (num2 >= 0000){ if (num2 <= 9999){ e = num2 / 1000; f = (num2 % 1000) / 100; g = (num2 % 1000) % 100 / 10; h = ((num2 % 1000) % 100) % 10 / 1; } } //printf("Usted esta multiplicando %d * %d\n",num,num2); vector[0] = d*e; vector[1] = c*e; vector[2] = b*e; vector[3] = a*e; vector[4] = d*f; vector[5] = c*f; vector[6] = b*f; vector[7] = a*f; vector[8] = d*g; vector[9] = c*g; vector[10] = b*g; vector[11] = a*g; vector[12] = d*h; vector[13] = c*h; vector[14] = b*h; vector[15] = a*h; printf("El resultado es : %d %d %d %d\n",vector [0], vector [4], vector [8], vector [12]); printf("El resultado es : %d %d %d %d\n",vector [1], vector [5], vector [9], vector [13]); printf("El resultado es : %d %d %d %d\n",vector [2], vector [6], vector [10], vector [14]); printf("El resultado es : %d %d %d %d\n",vector [3], vector [7], vector [11], vector [15]); return 0; }
|
|
|
10
|
Programación / Programación C/C++ / Mostrar Ganar tocar un número en la matriz.
|
en: 25 Febrero 2016, 21:04 pm
|
Hola amigos, una pregunta como haria para que cuando toque el numero "3" salga un mensaje en pantalla Haz ganado, de ante mano gracias. #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> #define maxfilas 10 #define minfilas 3 #define maxcolum 10 #define mincolum 3 int main(){ int filas,columnas,i ,j,a,num,num2; int matriz[400][400]; do { printf("Ingrese el numero de filas que tendra el juego\n"); } while(filas > maxfilas || filas < minfilas); do { printf("Ingrese el numero de columnas para el juego\n"); } while(columnas > maxcolum || columnas < mincolum); //Cargamos la matriz for(i = 0; i < filas; i++) { for(j = 0; j < columnas; j++) { matriz[i][j]=0; matriz[num][num2]=8; matriz[filas][columnas]=3; } } imprimir(filas,columnas,matriz); movimiento(filas,columnas,matriz); return 0; } void imprimir(int filas,int columnas,int matriz[maxfilas][maxcolum]) { //int matriz[filas][columnas]; int num,num2,i,j; //Imprimiendo la matriz for(i = 0; i < filas; i++) { for(j = 0; j < columnas; j ++) { if(matriz[i][j]==0) { } if(matriz[i][j]==8) { } if(matriz[i][j]==3) { } } } }// cierre funcion imprimir. void movimiento(int filas,int columnas,int matriz[maxfilas][maxcolum]) { int num,num2; char tecla; //int matriz[filas][columnas]; matriz[num][num2]=8; matriz[filas-1][columnas-1]=3; do { matriz[filas][columnas]=0; matriz[num][num2]=0; switch (tecla) { case 'w': { if (matriz[num-1][num2]==0) { num--; if(matriz[num][num2]==3){ break; } } break; } case 's': { if (matriz[num+1][num2]==0) { num++; if(matriz[num][num2]==3){ break; } } break; } case 'a': { if (matriz[num][num2-1]==0) { num2--; if(matriz[num][num2]==3){ break; } } break; } case 'd': { if (matriz[num][num2+1]==0){ num2++; if(matriz[num][num2]==3){ break; } } break; } }//cierre switch matriz[num][num2]=8; matriz[filas][columnas]=0; matriz[filas][columnas]=3; imprimir(filas,columnas,matriz); }while(tecla != 'x'); }
|
|
|
|
|
|
|