Advertisement
Guest User

Untitled

a guest
Oct 26th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.92 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3.  
  4. int main()
  5. {
  6.  
  7.     int sirka, vyska;
  8.          
  9.     // Kontrola vstupu
  10.  
  11.     if (scanf("%d%d", &sirka, &vyska) != 2) { // klasicka kontrola vstupu int
  12.             fprintf(stderr, "Error: Chybny vstup!\n");
  13.             return 100;
  14.     }
  15.  
  16.         if ((sirka > 63 || sirka < 3) || (vyska > 63 || vyska < 3)) { // kontrola intervalu
  17.             fprintf(stderr, "Error: Vstup mimo interval!\n");
  18.             return 101;
  19.         }
  20.    
  21.         if (sirka % 2 != 1) { // Sirka vzdy licha
  22.             fprintf(stderr, "Error: Sirka neni liche cislo!\n");
  23.             return 102;
  24.         }
  25.        
  26.     // 2 casti: strecha + domecek bez strechy
  27.    
  28.     // Strecha
  29.     int k = (sirka / 2); // Pomocna promenna pro vypocet mezer mezi zacatkem radku a prvnim x-kem
  30.     int n = 1; // Pomocna promenna pro vypocet mezer mezi x-kama
  31.  
  32.     for (int i = 0; i < (sirka / 2) ; i++) {
  33.         if (i == 0) { // Prvni radek je vzdy spicka - jedno x
  34.             for (int j = 0; j < (sirka / 2); j++) {
  35.                 printf(" ");
  36.             }      
  37.             printf("X\n");
  38.         }  
  39.         else {
  40.            
  41.             for (int m = k; m > 0; m--) {
  42.                 printf(" ");
  43.             }
  44.             printf("X");
  45.             for (int l = 0; l < n ; l++) {
  46.                 printf(" ");
  47.             }
  48.             printf("X\n");
  49.             n = n + 2; // Vypocet mezer mezi prvnim a druhym x-kem (pouze v pripade 2x = vynechano pro spicku domecku)
  50.         }
  51.         k--; // Vypocet meze mezi zacatkem radku a prvnim x-kem
  52.     }
  53.      
  54.    
  55.  
  56.  
  57.  
  58.        
  59.         // Domecek bez strechy
  60.         for (int i = 0; i < vyska; i++) {
  61.             if (i == 0) {
  62.                  for (int j = 0; j < sirka; j++) {
  63.                     printf("X");
  64.                     }
  65.                     printf("\n");
  66.             }
  67.                 else if (i == vyska - 1) {
  68.  
  69.                     for (int j = 0; j < sirka; j++) {
  70.                         printf("X");
  71.                     }
  72.                     printf("\n");
  73.             }
  74.         else {
  75.             printf("X");
  76.                 for (int k = 0; k < sirka - 2; k++) {
  77.                         printf(" ");
  78.                 }
  79.                 printf("X\n");
  80.         }
  81.         }
  82.  
  83.         return 0;
  84.  
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement