Перейти к содержанию

оптимиз-ть код, или можно сделать по другому


Рекомендуемые сообщения

/*   ****...**
     *.......*
     .              задание: вывести полый квадрат
     .
     *.......*
     *********
Используя только упр. структуры while, if, if/else, тип данных - int,
никаких своих функций.
Почему такие ограничения: учась по книге, хотелось бы использовать
тот материал, который прочел.*/

#include<stdio.h>

int main()
{
        int side, side3, i = 0, i_int;

        printf("Entered lenght of side [1 - 20]:\t");
        scanf("%d", &side);
        printf("\n");
        if (side < 1) printf("Side shoud be [1 - 20]");
        else
        if (side > 20) printf("Side shoud be [1 - 20]");
        else {
        while(++i <= side) printf("*");    // ****...*
        if (side != 1) {                   // ........
                printf("\n");
                i = 0;
                side3 = side - 2;

                while (++i <= side3) {     //cicle : between ****/****
                        i_int = 0;
                        printf("*");
                        while (++i_int <= side3) printf(" ");//SPACE
                        printf("*");
                printf("\n");
                }
        i = 0;                            //*.....*
        while(++i <= side) printf("*");  //***...*
        }
     }
return 0;
}
//как нить оптимизировать код или другой вариант прог-мы
//могет можно предложить...т. к. я новичок, сильно не пинайте
Ссылка на комментарий
Поделиться на другие сайты

Даю первое, что пришло в голову. Сильно сомневаюсь, что это оптимизация, но Вы просили по-другому - получите Smile

#include <stdio.h>                                                                                                                                                      
                                                                                                                                                                        
int                                                                                                                                                                     
main (void)                                                                                                                                                             
{                                                                                                                                                                       
    int i, x = 16, y = 16;                                                                                                                                              
    char pat1[32], pat2[32];                                                                                                                                            
                                                                                                                                                                        
    /* Формируем строки */                                                                                                                                              
    for (i = 0; i < x; i++)                                                                                                                                             
    {                                                                                                                                                                   
        pat1 = '*';                                                                                                                                                  
        pat2 = ' ';                                                                                                                                                  
    }                                                                                                                                                                   
    pat2[0] = pat2[x-1] = '*';                                                                                                                                          
    pat1[x] = pat2[x] = 0;                                                                                                                                              
                                                                                                                                                                        
    /* Выводим строки */                                                                                                                                                
    printf ("%s\n", pat1);                                                                                                                                              
    for (i = 0; i < y; i++)                                                                                                                                             
        printf ("%s\n", pat2);                                                                                                                                          
    printf ("%s\n", pat1);                                                                                                                                              
                                                                                                                                                                        
    return 0;   
}
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...