Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с задачкой на С

20K
09 октября 2006 года
luksor
8 / / 09.10.2006
Задачка на С.Нужна помощь в её решении.
Написать программу которая считывает размер стороны квадрата и затем выводит этот квадрат в виде звёздочек.Например, если ваша программа считывает размер равный 4, она должна вывести:
****
****
****
****

И такую же программу только выводящую полый квадрат:
****
* *
* *
****

Заранее спасибо.
5.4K
09 октября 2006 года
Svyatozar
221 / / 11.09.2006
а в чем проблема? Что именно не понятно?
20K
10 октября 2006 года
luksor
8 / / 09.10.2006
В принципе уже всё :) Сам решил, вот может кому пригодится:
1) Первая задачка:
Код:
#include <stdio.h>
 
int main(void) {
int x, counter = 1, counter2 = 1;
 
printf("Введите размер стороны квадрата: ");
scanf("%d", &x);
 
while(counter2 <= x) {
while(counter <= x) {
printf("%s", "#");
counter++;
}
counter = 1;
counter2++;
printf("\n");
}
return 0;
}

2) Вторая задачка:
Код:
#include <stdio.h>
 
int main(void) {
int st, count2 = 1, count = 1;
 
printf("Введите размер стороны квадрата: ");
scanf("%d", &st);
 
while(count2 <= st) {
if(count2 == 1) {
while(count <= st) {
printf("%s", "*");
count++;
}
}
else if(count2 == st) {
while(count <= st) {
printf("%s", "*");
count++;
}
}
else {
while(count <= st) {
if(count == 1) {
printf("%s", "*");
count++;
}
else if(count == st) {
printf("%s", "*");
count++;
}
else {
printf("%s", " ");
count++;
}
}
}
count = 1;
printf("\n");
count2++;
}
return 0;
}

[COLOR=red][/COLOR]
[COLOR=red]пользуйся тэгами [ code ] [ /code ][/COLOR]
242
10 октября 2006 года
Оlga
2.2K / / 04.02.2006
2-ую задачу можно решить попроще если пользоваться OR (||) в if'е
Код:
#include <stdio.h>
int main(void) {
 int st, row = 1, column = 1;
 printf("Enter size of square's side: ");
 scanf("%d", &st);
 for(row = 1; row <= st; row++)
 {
  for(column = 1; column <= st; column++)
   if(row == 1 || row == st || column == 1 || column == st)
    printf("%s", "*");
   else
    putchar(' '); // or printf(" ");
  putchar('\n');
 }
 printf("\n\n");
 return 0;
}
547
10 октября 2006 года
Hydra
488 / / 20.06.2006
Или ввобще без вложенного цикла:
Код:
#include <stdio.h>
int main(void)
{ int st;
  printf("Enter size of square's side: ");
  scanf("%d", &st);
  for(int i=1;i<=st*st;i++)
   { if (i<st || i>st*(st-1) || !(i%st) || !((i-1)%st))
       putchar('*'); else putchar(' ');
      if (!(i%st)) puts(""); }
 return 0;
}
5.4K
10 октября 2006 года
Svyatozar
221 / / 11.09.2006
Весьма радует факт что автор приложил усилие к решению сей элементарной задачи.

Предлагаю свой вариант:
Код:
#include <stdio.h>
#include <string.h>

int main(int argc, char **argv) {
    int st;
    if(argc < 1) {
        printf("Enter size of square's side: ");
        scanf("%d", &st);
    } else {
        sscanf(argv[1], "%d", &st);
    }
    char *full = new char[st + 1];
    memset(full, '*', st);
    full[st] = '\0';
    char *empty = new char[st + 1];
    memset(empty, ' ', st);
    empty[0] = empty[st - 1] = '*';
    empty[st] = '\0';
    printf("%s\n", full);
    int i = st - 2;
    for(; --i >= 0; ) {
        printf("%s\n", empty);
    }
    printf("%s\n", full);
    delete full, empty;
    return 0;
}
20K
10 октября 2006 года
luksor
8 / / 09.10.2006
Я вообщето начинающий, поэтому просьба не сильно меня бить за примитивные для вас вопросы. :)
С наилучшими пожеланиями Ровшан.

P.S.За варианты отдельное спасибо.Родина вас не забудет :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог