Вывод пустого квадрата из звездочек - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Не могу написать программу для вывода пустого квадрата из "*" в Си. Заполненный квадрат выводится без проблем, через 2 цикла for... Это задачка из Дейтла. Перепробовал и так и так, но не идёт. Заранее Вам большое спасибо!!!

Решение задачи: «Вывод пустого квадрата из звездочек»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
/* квадраторисовалка */
 
#define SIDE_SIZE 10
 
int main(){
    char row[SIDE_SIZE + 1];
    int i;
    
    /* верхняя строка */
    memset(row, '*', SIDE_SIZE);
    /* завершающий ноль */
    row[SIDE_SIZE] = 0;
    printf("%s\n", row);
    /* середина */
    memset(row + 1, ' ', SIDE_SIZE - 2);
    for ( i = 0; i < SIDE_SIZE - 2; i++ )
        printf("%s\n", row);
    /* нижняя сторона */
    memset(row, '*', SIDE_SIZE);
    printf("%s\n", row);
    
    return (0);
}

Объяснение кода листинга программы

В этом коде создается пустой квадрат из звездочек. Вот что происходит:

  1. Строка row инициализируется как массив символов с размером SIDE_SIZE + 1.
  2. Первая строка квадрата (верхняя сторона) создается с помощью функции memset(), которая заполняет строку row звездочками.
  3. Последний символ строки устанавливается в ноль, чтобы завершить строку.
  4. Эта строка выводится на консоль с помощью функции printf().
  5. Вторая строка квадрата (середина) создается путем заполнения символами пробелов следующего массива row + 1, который является адресом первого элемента следующего массива, увеличенного на единицу.
  6. Используя цикл for, строка выводится на консоль SIDE_SIZE - 2 раза.
  7. Третья строка квадрата (нижняя сторона) создается с помощью функции memset(), которая заполняет строку row звездочками.
  8. Эта строка выводится на консоль с помощью функции printf().
  9. Программа возвращает ноль, что означает успешное выполнение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы