Нарисовать пирамиду из решеток похожую на пирамиду - C (СИ)

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

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

Задача: нужно нарисовать пирамиду из решеток похожую на пирамиду , на которую взбирается Марио в конце каждого уровня в игре. Типа такой
        ##
         ###
      ####
   #####
Высоту должен задавать пользователь вначале (от 1 до 23);
#include "cs50.h"
#include "stdio.h"

int main(void)
{
    printf("Pleace, write the height of pyramid (1-23)\n");
    int height = GetInt();
    if (height>0 && height <=23){
 
        string space = " "; // обозначим символ пробел
        string sharp = "#"; // обозначим символ решетку
        int number_space = height - 1; // определим колличество пробелов в соответствии с высотой 
        
            while (number_space>=0){
                printf( %d  * %s + %s + "#\n", number_space, space, sharp);  //обязательно добавляем решетку  в конце, так как должно быть минимум 2 решетки на самом верхнем уровне
                number_space--;
                sharp = sharp + "#";
        }
    }
}
Консоль выдает такие ошибки : Compiling /home/ubuntu/workspace/mario.c ... clang -ggdb3 -O0 -std=c11 -Wall -Werror mario.c -lcs50 -lm -o mario mario.c:16:24: error: expected expression printf(%d * %s + %s + "#\n", number_space, space, sharp); //обязательно добавляем решетк... ^ mario.c:16:25: error: use of undeclared identifier 'd' printf(%d * %s + %s + "#\n", number_space, space, sharp); //обязательно добавляем решетк... ^ mario.c:16:30: error: expected expression printf(%d * %s + %s + "#\n", number_space, space, sharp); //обязательно добавляем решетк... ^ mario.c:16:31: error: use of undeclared identifier 's' printf(%d * %s + %s + "#\n", number_space, space, sharp); //обязательно добавляем решетк... ^ mario.c:16:35: error: expected expression printf(%d * %s + %s + "#\n", number_space, space, sharp); //обязательно добавляем решетк... ^ mario.c:16:36: error: use of undeclared identifier 's' printf(%d * %s + %s + "#\n", number_space, space, sharp); //обязательно добавляем решетк... ^ mario.c:18:31: error: invalid operands to binary expression ('string' (aka 'char *') and 'char *') sharp = sharp + "#"; ~~~~~ ^ ~~~ mario.c:27:14: error: expected '}' ###### */ ^ mario.c:6:1: note: to match this '{' { ^ 8 errors generated. make: *** [mario] Error 1 Please be sure to stop other debuggers before continuing.

Решение задачи: «Нарисовать пирамиду из решеток похожую на пирамиду»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
void pyr(int n,int k)
{    int i;
     if (n==k) return;
     for (i=1; i<=n-k; i++) printf(" ");
     for (i=1; i<=k; i++) printf("#");
     printf("\n");
     pyr(n,k+1);
     return;
}     
int main(int argc, char *argv[])
{
  pyr(20,1);
  system("PAUSE");  
  return 0;
}

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

Вывод: Пирамида из символов # размером 20x20 Объяснение:

  1. void pyr(int n,int k) - функция с двумя позиционными параметрами: n и k.
  2. if (n==k) return; - если n равно k, то функция заканчивает свою работу и возвращает управление.
  3. for (i=1; i<=n-k; i++) printf( ); - в этом цикле будут выводиться пробелы. Количество пробелов определяется разницей между n и k.
  4. for (i=1; i<=k; i++) printf(#); - в этом цикле будут выводиться символы #. Количество символов определяется значением k.
  5. printf(\n); - переход на новую строку.
  6. pyr(n,k+1); - вызов функции pyr с новыми значениями параметров n и k.
  7. return; - завершение работы функции.
  8. *int main(int argc, char argv[])** - главная функция программы.
  9. pyr(20,1); - вызов функции pyr с аргументами 20 и 1.
  10. system(PAUSE); - пауза в программе, чтобы пользователь мог увидеть результат.
  11. return 0; - завершение работы программы.

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


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

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

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