Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/03/2014, 13:29
Avatar de Totti7
Totti7
 
Fecha de Ingreso: mayo-2012
Ubicación: barcelona
Mensajes: 28
Antigüedad: 12 años
Puntos: 2
triangulo iscosceles pintado!

Buenas, estoy realizando un ejercicio en c en el cual tengo que crear un programa que me pida la longitud del triangulo ISCOSCELES, el caracter con el que se imprimira, y si sera un triangulo vacio o lleno. El triangulo vacio lo tengo creado, pero no consigo hacer el triangulo lleno.. adjunto codigo para que veais el programa:
Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int pintartriangulo(){
  4.     int opcion=0;
  5.     printf("\n0- No\n");
  6.     printf("\n1- Sí\n");
  7.     scanf("%d",&opcion);
  8.     printf("\n");
  9.     return opcion;
  10. }
  11.  
  12. void main(){
  13. int base, n, op1, i, j, numero;
  14. char c;
  15.  
  16. printf("\nIntroduzce la  altura del triangulo : ");
  17. scanf("%d", &n);
  18. printf("\nIntroduce el caracter a pintar: ");
  19. scanf(" %c", &c);
  20. printf("\nEstará hueco?: \n");
  21. op1=pintartriangulo();
  22.  
  23.         switch(op1){
  24.  
  25.             case 0: //triangulo lleno
  26.  
  27.                 i=0;
  28.                 while(i < n-1){
  29.                     for(j= 0; j < n; j++)
  30.                     {
  31.                         if(j == 0 || j==i || j==i-1 || j== i-2){// la cuestion es hacer j==i- (numero <=infinito)
  32.                          printf("%c",c);
  33.                         }
  34.                         else
  35.                         {
  36.                             printf(" ");
  37.                         }
  38.                        
  39.                     }
  40.                 printf("\n");
  41.                 i++;
  42.                 }
  43.              
  44.                 i=0;
  45.                 while(i < n){
  46.                     for(j= 0; j < n; j++)
  47.                     {
  48.                             if(j == 0 || j== n-i-1 || j== n-i-2 || j== n-i-3 || j== n-i-4 || j== n-i-5 || j== n-i-6 || j== n-i-7)
  49.  // la cuestion es hacer j==n-i- (numero <=infinito)
  50.                             {
  51.                                 printf("%c",c);
  52.                             }
  53.                            
  54.                             else
  55.                             {
  56.                                  printf(" ");
  57.                             }
  58.                     }
  59.                 printf("\n");
  60.                 i++;
  61.                 }
  62.        
  63.                 break;
  64.                    
  65.             case 1: //triangulo vacio
  66.                
  67.                 i=0;
  68.                 while(i < n-1){
  69.                     for(j= 0; j < n; j++)
  70.                     {
  71.                         if(j == 0 || j==i)
  72.                         {
  73.                             printf("%c",c);
  74.                         }
  75.                         else
  76.                         {
  77.                             printf(" ");
  78.                         }
  79.                     }
  80.                 printf("\n");
  81.                 i++;
  82.                 }
  83.  
  84.                 i=0;
  85.                 while(i < n){
  86.                     for(j= 0; j < n; j++)
  87.                     {
  88.                         if(j == 0 || j== n-i-1)
  89.                         {
  90.                             printf("%c",c);
  91.                         }
  92.                         else
  93.                         {
  94.                             printf(" ");
  95.                         }
  96.                     }
  97.                 printf("\n");
  98.                 i++;
  99.                 }                  
  100.                 break;
  101.         }
  102. }

El fallo es que quiero hacer una operacion: j==n-i-numero, donde numero sea un numero desde el 1 al millon por ejemplo, que haga (j==n-i-1, j==n-i-2, j==n-i-3, etc.) Gracias de antemano! Si sabeís alguna otra opción más facil de hacerlo mejor;)
el triangulo es de esta forma, de lado pero mirando hacia la derecha no hacia la izquierda: