lirity Опубликовано 4 октября, 2005 Жалоба Поделиться Опубликовано 4 октября, 2005 /* ****...** *.......* . задание: вывести полый квадрат . *.......* ********* Используя только упр. структуры 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; } //как нить оптимизировать код или другой вариант прог-мы //могет можно предложить...т. к. я новичок, сильно не пинайте Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 4 октября, 2005 Жалоба Поделиться Опубликовано 4 октября, 2005 Даю первое, что пришло в голову. Сильно сомневаюсь, что это оптимизация, но Вы просили по-другому - получите #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; } Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
lirity Опубликовано 5 октября, 2005 Автор Жалоба Поделиться Опубликовано 5 октября, 2005 да точно моно и так, действительно) пасибо EvilShadow) что значит опыт)) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.