Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Problema con código

Estas en el tema de Problema con código en el foro de C/C++ en Foros del Web. Hola Amigos, Espero me puedan ayudar con este ptrogramita que veo que es sencillo, pero ya me tiene loco. Se trata de lo siguiente (ta ...
  #1 (permalink)  
Antiguo 02/05/2014, 14:19
 
Fecha de Ingreso: mayo-2014
Mensajes: 6
Antigüedad: 9 años, 11 meses
Puntos: 0
Problema con código

Hola Amigos,

Espero me puedan ayudar con este ptrogramita que veo que es sencillo, pero ya me tiene loco.

Se trata de lo siguiente (ta vez ya lo han visto):

Lo que se requiere es que el programa pregunte por un número, por ejemplo digamos que el usuario decide el número 8, entonces el programa debería de hacer lo siguiente

1234567##
123456###
12345####
1234#####
123######
12#######
1########
#########

Donde los números deben de ser espacios, (yo escribí números para saber cuantos espacios contar para efectos del programa)
Por ejemplo si el usuario tecleó el número 3 entonces debe de imprimir 3 lineas como sigue:

1234567##
123456###
12345####

Recordar que los números son espacios, Es todo el programa.

// este es el codigo que llevo
Código:
#include <stdio.h>
#include <cs50.h>
int main(void)
{
    int height;
   
    do
    {
        printf("please give me a number for a mario half pyramid: ");
        height = GetInt();
        
         if ( height > 23 || height < 0)
       
        printf("Please pick a number integer betwee 1 and 23!\n");
        
    } 
           while (height < 0 || height > 23);
           if (height >= 0 && height <= 23)
           
                   
// Half pyramid start                 
                   
// spaces generator
   
       for(int espacio = 0; espacio < height-1 ; espacio++)
        
         {
           printf(" ");
         }
  
// hash generator (g is "gato" means hash in spanish)
       for(int g = 0 ; g < height+1 ; g++)        
      {
          printf("#");
      }
            
      printf("\n");
      
         
}
  #2 (permalink)  
Antiguo 02/05/2014, 14:39
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con código

Hola, el programa es en C o C++?

Otra pregunta...
Que pasaría si el usuario escribe un número mayor que 8?
Porque en el segundo ejemplo ponés esto:

1234567##
123456###
12345####

osea empezás por el número 7, igual que el ejemplo de arriba, no entiendo bien.

¿El usuario puede poner un número mayor que 8? Si es así, ¿Cómo debería quedar el código de ejemplo?
  #3 (permalink)  
Antiguo 02/05/2014, 14:44
 
Fecha de Ingreso: mayo-2014
Mensajes: 6
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Problema con código

Cita:
Iniciado por Principe_Azul Ver Mensaje
Hola, el programa es en C o C++?
Hola es C

No quiero que me den la solución, solo necesito algunos TIPS! para saber donde debo enfocarme.

Gracias
  #4 (permalink)  
Antiguo 02/05/2014, 14:47
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con código

Yo no trabajo con C, pero creo que esta línea:

for(int g = 0 ; g < height+1 ; g++)

debería quedar así:

for(int g = 0 ; g <= height ; g++)
  #5 (permalink)  
Antiguo 02/05/2014, 14:48
 
Fecha de Ingreso: mayo-2014
Mensajes: 6
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Problema con código

Cita:
Iniciado por Principe_Azul Ver Mensaje
Hola, el programa es en C o C++?

Otra pregunta...
Que pasaría si el usuario escribe un número mayor que 8?
Porque en el segundo ejemplo ponés esto:

1234567##
123456###
12345####

osea empezás por el número 7, igual que el ejemplo de arriba, no entiendo bien.

¿El usuario puede poner un número mayor que 8? Si es así, ¿Cómo debería quedar el código de ejemplo?
debe der un número entre 1 y 23.

DISCULPA la confusión, en realidad el programa no escribirá numeros, solo espacios y #. Los números los puse yo para saber cuandos espacios serán.

Por ejemplo si el usuario escribe 3 entonces el programa hara lo iguiente:

##
###
####

Espero haberme explicado
  #6 (permalink)  
Antiguo 02/05/2014, 14:55
 
Fecha de Ingreso: mayo-2014
Mensajes: 6
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Problema con código

Cita:
Iniciado por Principe_Azul Ver Mensaje
Yo no trabajo con C, pero creo que esta línea:

for(int g = 0 ; g < height+1 ; g++)

debería quedar así:

for(int g = 0 ; g <= height ; g++)
Gracias, ya lo había intentado de esa forma, pero lo unico que me imprime es por ejemplo si escojes 3
####

Es decir 2 espacios y 4 #

y debería de ser

***##
**###
*####
#####

LOS * DEBEN SER ESPACIOS, pero si pongo espacio el foro alinea a la izquierda..
  #7 (permalink)  
Antiguo 02/05/2014, 14:56
 
Fecha de Ingreso: mayo-2014
Mensajes: 6
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Problema con código

Cita:
Iniciado por adsoma Ver Mensaje
debe der un número entre 1 y 23.

DISCULPA la confusión, en realidad el programa no escribirá numeros, solo espacios y #. Los números los puse yo para saber cuandos espacios serán.

Por ejemplo si el usuario escribe 3 entonces el programa hara lo iguiente:

***##
**###
####

Los * deben de ser espacios
Espero haberme explicado
  #8 (permalink)  
Antiguo 02/05/2014, 15:15
 
Fecha de Ingreso: mayo-2014
Mensajes: 6
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Problema con código

Gracias, por cuestiones de ética en mi curso, no puedo preguntar por dudas, tengo que hacerlo solo. GRACIAS MIL.

Due to Academic Honesty, I cannot ask anymore. Thanks anyways!!!
  #9 (permalink)  
Antiguo 02/05/2014, 17:59
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: Problema con código

Código C++:
Ver original
  1. // modify adjustfield using manipulators
  2. #include <iostream>     // std::cout, std::internal, std::left, std::right
  3.  
  4. int main () {
  5.   int n = -77;
  6.   //std::cout.width(6); std::cout << std::internal << n << '\n';
  7.   //std::cout.width(6); std::cout << std::left     << n << '\n';
  8.   std::cout.width(8); std::cout << std::right    << 0 << '\n';
  9.   std::cout.width(8); std::cout << std::right    << 12 << '\n';
  10.   std::cout.width(8); std::cout << std::right    << 123 << '\n';
  11.   std::cout.width(8); std::cout << std::right    << 1234 << '\n';
  12.   std::cout.width(8); std::cout << std::right    << 12345 << '\n';
  13.   std::cout.width(8); std::cout << std::right    << 123456 << '\n';
  14.   std::cout.width(8); std::cout << std::right    << 1234567 << '\n';
  15.   std::cout.width(8); std::cout << std::right    << 12345678 << '\n';  
  16.   return 0;
  17. }
=D
Y esta otra XD

Código C++:
Ver original
  1. // modify adjustfield using manipulators
  2. #include <iostream>     // std::cout, std::internal, std::left, std::right
  3.  
  4. int main () {
  5.   int n = -77;
  6.   //std::cout.width(6); std::cout << std::internal << n << '\n';
  7.   //std::cout.width(6); std::cout << std::left     << n << '\n';
  8.   std::cout.width(8); std::cout.fill('X'); std::cout << std::right    << 0 << '\n';
  9.   std::cout.width(8); std::cout.fill('X'); std::cout << std::right    << 12 << '\n';
  10.   std::cout.width(8); std::cout.fill('X'); std::cout << std::right    << 123 << '\n';
  11.   std::cout.width(8); std::cout.fill('X'); std::cout << std::right    << 1234 << '\n';
  12.   std::cout.width(8); std::cout.fill('X'); std::cout << std::right    << 12345 << '\n';
  13.   std::cout.width(8); std::cout.fill('X'); std::cout << std::right    << 123456 << '\n';
  14.   std::cout.width(8); std::cout.fill('X'); std::cout << std::right    << 1234567 << '\n';
  15.   std::cout.width(8); std::cout.fill('X'); std::cout << std::right    << 12345678 << '\n';  
  16.   return 0;
  17. }

solo hacer una especie de contador ;) y que te ponga como veas mejor
cout tiene muchas utilidades aparte de la de escribir en pantalla.
Solo lo usamos para sacar texto simple pero en realidad es un colisionador de hadron jajaja
Mire todo lo que puede hacer por ti XDDD
http://www.cplusplus.com/reference/ostream/ostream/

Última edición por vangodp; 02/05/2014 a las 18:06
  #10 (permalink)  
Antiguo 02/05/2014, 18:55
Avatar de Drewermerc  
Fecha de Ingreso: febrero-2014
Mensajes: 185
Antigüedad: 10 años, 2 meses
Puntos: 5
Respuesta: Problema con código

hola adsoma.
yo tambien hace un tiempo trate de hacer lo mismo.
nose si aun andes buscando la respuesta pero te pongo el codigo lo unico que debes investicgar son los parametros de printf todo lo demas supongo que ya lo sabes hacer sino solo investiga arrays.

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main ()
  4. {
  5.     int num, i;
  6.     char sig[20];
  7.     num = 0;
  8.     i = 0;
  9.     for (i = 0; i <= 19; i++)
  10.         sig[i] = '#';
  11.     sig[19] = '\0';
  12.     printf("introduce el numero");
  13.     scanf("%d", &num);
  14.         //esto es lo unico nuevo los parametros de printf.
  15.     for (i = 0; i <= num; i++)
  16.         printf("%*c%.*s\n", num+1-i, ' ', i, sig);
  17.        
  18. }
saludos drewermerc.

Etiquetas: int, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:16.