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 - dmacias

#31
Bueno, ya esta solucionado, habia que tocarle un par de cosas mas  :laugh:

Lo dejo por si a alguien mas le pudiera hacer falta



#include <stdio.h>

int main()
{
int fila1 = 1;
int fila2 = 1;
int contador = 0;

while (contador <= 8){
fila1=fila2=1;
if (contador%2 == 0){
while (fila1 <= 8){
printf("* ");
fila1 ++;
}
printf("\n");
contador ++;
}
if (contador%2 != 0){
printf(" ");
while (fila2 <= 8){
printf("* ");
fila2 ++;
}
printf("\n");
contador ++;
}
}
return 0;
}


Aqui la salida



* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *



leosansan ahí te corrijo una pequeño fallo que tienes, pero igualmente muchas gracias ya que lo hice volando en cuanto me comentaste ;)

Cita de: leosansan en  2 Febrero 2014, 17:41 PM
Te falta reiniciar las variables fila1 y fila2 cada vez que invocas al while del contador.

Pero una forma, creo que más simple, y que produce la salida deseada:


podría ser:

Código (cpp) [Seleccionar]

#include <stdio.h>

int main()
{
int fila1 = 1;
int fila2 = 1;
int contador = 1;

for(contador=1;contador<=4;contador++) {
fila1=fila2=1;
while (fila1 <= 8){
printf("* ");

fila1++;
}
printf("\n");
while (fila2 <= 8){
printf(" ");
printf("* ");

fila2++;
}
printf("\n");

}
return 0;
}


Claro que a lo mejor sólo puedes usar while. En este caso valdría:

Código (cpp) [Seleccionar]

#include <stdio.h>

int main()
{
int fila1 = 1;
int fila2 = 1;
int contador = 1;

while (contador<=4) {
fila1=fila2=1;
while (fila1 <= 8){
printf("* ");

fila1++;
}
printf("\n");
while (fila2 <= 8){
printf(" "); <---/*Esto no deberia de ir aqui, por eso no te cuadra las lineas*/
printf("* ");     /*no se donde, pero aqui no  ;) */

fila2++;
}
printf("\n");
     contador++;
}
return 0;
}




¡¡¡¡ Saluditos! ..... !!!!






Un saludooo
#32
Si se me olvido comentarlo, solo puedo usar while e if que he lo que he estudiado asta ahora.

Vaya, hace algunos ejercicio tuve que hacer eso mismo y ahora se me paso  :-[  :-[

voy a terminar este con lo que me has dicho, estudio lo que me pusiste y miro las diferencias ;)

Un saludo
#33
Hola, buenas a todos de nuevo

Estoy atascado en un ejercicio del libro que estoy estudiando y algo se me tiene que escapar porque ya probé mil cosas y no doy con la tecla, os ongo el enunciado.



Esto es lo que tengo hecho, y no le veo el fallo de porque solo me saca una vez cada linea



#include <stdio.h>

int main()
{
int fila1 = 1;
int fila2 = 1;
int contador = 1;

while (contador <= 8){
if (contador/2 != 0){
while (fila1 <= 8){
printf("* ");
fila1 ++;
}
printf("\n");
contador ++;
}
if (contador/2 == 0){
printf(" ");
while (fila2 <= 8){
printf("* ");
fila2 ++;
}
printf("\n");
contador ++;
}
}
return 0;
}


Y esto es lo que me tira este codigo



Pues eso, si podeis orientarme haber donde fallo, porque no lo veo  :rolleyes:

Un saludo
#34
Vaya, si antes expongo el problema, antes encuentro la solucion en un post antiguo de leosansan.

Sorry por no usar eficientemente las busquedas antes :(

aqui la solucion:


/* Programa del libro Tema 3
* ejercicio 3.27 pagina 83
* Introduzca 10 valores y encuentre los dos mas altos*/

#include <stdio.h>

int contador = 1;
int numero;
int mayor = 0;
int segundo = 0;

int main()
{
while (contador <=5){
printf("Introduzca un numero: ");
scanf("%d", &numero);
contador += 1;

if(numero > mayor){
segundo = mayor;
mayor = numero;
}
else if (numero > segundo){
segundo = numero;
}

}
printf("El numero mayor es %d y el segundo mayor %d\n", mayor, segundo);
return 0;

}





#35
Buenas a todos, os prometi que volveria  :laugh: y aqui vuelvo con otro problemilla, os cuento.

Aclaro antes que nada que estoy siguiendo el libro de deitel y solo he estudiado if, else, while. Asi que no os salgais de ahí que ya para mi es mandarin xD

Me he atrancado en el problema que me pide ingresar unos numeros y que te imprima los dos mayores, que me diga el valor mas alto lo hago bien, pero no soy capaz de sacar el segundo mayor. Ya le he dado varias vueltas sin exito. Como siempre supongo que fallo en las mates y no en el lenguaje en si.

Os pongo el que a mi parecer seria mas lógico que funcionara:


/* Programa del libro Tema 3
* ejercicio 3.27 pagina 83
* Introduzca 10 valores y encuentre los dos mas altos*/

#include <stdio.h>

int contador = 1;
int numero;
int mayor = 0;
int segundo = 0;

int main()
{
while (contador <=5){
printf("Introduzca un numero: ");
scanf("%d", &numero);
contador += 1;

if(numero > mayor){    /*si num es mayor que mayor*/
mayor = numero;   /* asigna el valor a mayor*/
if (numero > segundo){   /*si numero es mayor que segundo*/
if (numero < mayor){  /*y mas pequeño que mayor*/
segundo = numero;  /*asigna el valor a segundo*/
}
}
}
printf("El numero mayor es %d y el segundo mayor %d\n", mayor, segundo);
return 0;

}


Viendo que no funcionaba reduje la entrada a 5, asi pruebo mas rapido, que seguro alguien me dice que el enunciado pone introduce 10 xD. El segundo valor siempre me lo deja como 0, una muestra:


edito: Le di a enviar en vez a previsualizar xD
#36
Me pongo en modo observatorio, que justo estoy leyendo sobre diagramas de flujo y pseudocodigos  :o
#37
Supongo que todo eso que me comentas será mejor, solo tengo el problema que recien empiezo, jamas he visto #define, void, unsigned long long, fflush( stdout ), for, getchar, .........etc . Puro mandarin para mi ahora mismo  :rolleyes: jajajaja.

Solo he dado 2 temas del libro, en los que se ha visto solo printf, scanf, return e if, dar tipo y valor a una variable, comentarios, %d, \n, \t, etc....

creo no haberme dejado ninguno atras.

Un saludo
#38
Muchas gracias a los dos, en cuanto os leí me puse a ello y ya está solucionado  ;-) . Veo que ando flojo en mates y logica.
Aqui os pego lo que ha salido


#include <stdio.h>

int main()
{
int numero, a, b, c, d, e;

printf("Escribe un numero entero con 5 digitos: ");
scanf("%d", &numero);

if (numero >= 10000){
if (numero <= 99999){
a = numero / 10000;
b = (numero % 10000) / 1000;
c = (numero % 10000) % 1000 / 100;
d = ((numero % 10000) % 1000) % 100 / 10;
e = (((numero % 10000) % 1000) % 100) % 10;

printf("%d   %d   %d   %d   %d\n", a, b, c, d, e);
}
}
return 0;
}


Y funcionar funciona ya puedo seguir estudiando pero no dudeis que me vereis por aqui todos los dias con dudas  ;D
#39
Hola a todos
Soy muy nuevo en esto de la programación, justo empece hace unos dias a aprender C y ya tengo mi primer problema asi que vengo a pedir consejo o alguna pista.

El libro que estoy siguiendo es el de deitel, la 4ª edicion y me quede atascado en el siguiente problema

Escriba un programa que introduzca un numero de cinco digitos, que separe el numero en sus digitos individuales y que despliegue los digitos separados entre si mediante 3 espacios cada uno. [Pista: Utilice combinaciones de la division entera y el operador modulo]

Lo llevo todo bastante bien por el momento, pero no se me ocurre el como puedo hacer para separar los digitos, supongo que mas que un problema con el lenguaje es de planteamiento, pero bueno. Por ahora el libro solo a tocado printf, scanf e if
Decir tambien que apenas tengo estudios y los que tengo son de la edad del bronce xD asi que no seais muy malos conmigo  :P

Un saludo
#40
Programación C/C++ / Re: duda al comprar libro C
23 Diciembre 2013, 22:37 PM
Si, ya lei ese post y me decidi por deitel ya que tiene muy buenas criticas, solo era para saber un poco la diferencia estre las revisiones que encontre, la 2ª y la 4ª.

Un saludo