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ú

Temas - veravluis

#1
// 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.

Código (cpp) [Seleccionar]

char nombreEdad[] = "Luis 20";
char* a;

a = strtok(nombre, " ");
while(a != NULL) {


cout << a << endl;
a = strtok(NULL, " ");

}
#2
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++) {
printf("\n\t\t\t");
for(j = 0; j < columnas; j++) {
printf("%d",matriz[i][j]);
}
}
printf("\n\n");
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),7);
printf("\t1 \t2 \t3 \t4 \t5 \t6 \n");
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),1);
printf("\t%c",219);
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),2);
printf("\t%c",219);
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),3);
printf("\t%c",219);
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),4);
printf("\t%c",219);
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),5);
printf("\t%c",219);
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),6);
printf("\t%c",219);


movimiento_matriz(matriz);
}

void movimiento_matriz(int matriz[][columnas]){

int mycolor;

mycolor = matriz[0][0];
matriz[0][0] = 10;

char tecla;

tecla = getch();
//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 : {

printf("\nError\n");
break;
}
}

system("cls");
pintar_matriz(matriz);

}

void jugar(int matriz[][columnas]) {

cargar_matriz(matriz);
pintar_matriz(matriz);
movimiento_matriz(matriz);

}
#3
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() {

srand(time(NULL));
int num;
int matriz[filas][columnas];
//num = rand()%1+9;

for(i = 0; i < filas;i++) {
printf("\n");
for(j = 0; j < columnas;j++){
matriz[i][j] = rand()%9+1;
printf("%d ",matriz[i][j]);
}
}

return 0;
}
#4
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 : ");
scanf("%d",&num);

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 : ");
scanf("%d",&num2);

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;

}
#5
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];
srand(time(NULL));

printf("Bienvenido.\n");

do {
fflush(stdin);
printf("Ingrese el numero de filas que tendra el juego\n");
a = isdigit(filas);
scanf("%d",&filas);
}


while(filas > maxfilas || filas < minfilas);

do {
fflush(stdin);
printf("Ingrese el numero de columnas para el juego\n");
a = isdigit(columnas);
scanf("%d",&columnas);
}
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]) {

system("cls");
//int matriz[filas][columnas];
int num,num2,i,j;

//Imprimiendo la matriz
for(i = 0; i < filas; i++) {
printf("\n");
for(j = 0; j < columnas; j ++) {
if(matriz[i][j]==0) {
printf("0",matriz[i][j]);
}
if(matriz[i][j]==8) {
printf("\1",matriz[i][j]);
}
if(matriz[i][j]==3) {
printf("3",matriz[i][j]);
}
}
}




}// cierre funcion imprimir.

void movimiento(int filas,int columnas,int matriz[maxfilas][maxcolum]) {


int num,num2;
char tecla;

//int matriz[filas][columnas];
num = rand()%2+1;
num2 = rand()%2+1;
matriz[num][num2]=8;
matriz[filas-1][columnas-1]=3;

do {

tecla = getch();



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
system("cls");
matriz[num][num2]=8;
matriz[filas][columnas]=0;
matriz[filas][columnas]=3;

imprimir(filas,columnas,matriz);


}while(tecla != 'x');

}

#6
Hola a todos, bueno pasaba por aqui para hacer una pregunta como podria hacer que salga el numero 1 aleatoriamente en mi matriz estoy intentando, 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,num,x,y;
//int matriz[400][400];
srand (time (NULL));

printf("Bienvenido.\n");

do {
printf("Ingrese el numero de filas que tendra el juego\n");
scanf("%d",&filas);
}
while(filas > maxfilas || filas < minfilas);

do {
printf("Ingrese el numero de columnas para el juego\n");
scanf("%d",&columnas);
}
while(columnas > maxcolum || columnas < mincolum);

int matriz[filas][columnas];


for(i = 0; i < filas; i++){
printf("\n");
for(j = 0; j < columnas; j++){

//y = rand() % filas;
  //x = rand() % columnas;
  num = rand() %9;
  matriz[i][j] = num;
printf("\t%d",matriz[i][j]==1);

}
}


system("pause");
return 0;
}