Нарисовать пирамиду из решеток похожую на пирамиду - C (СИ)
Формулировка задачи:
Задача: нужно нарисовать пирамиду из решеток похожую на пирамиду , на которую взбирается Марио в конце каждого уровня в игре. Типа такой
Высоту должен задавать пользователь вначале (от 1 до 23);
Консоль выдает такие ошибки :
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.
## ### #### #####
#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 + "#"; } } }
Решение задачи: «Нарисовать пирамиду из решеток похожую на пирамиду»
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
Объяснение:
- void pyr(int n,int k) - функция с двумя позиционными параметрами: n и k.
- if (n==k) return; - если n равно k, то функция заканчивает свою работу и возвращает управление.
- for (i=1; i<=n-k; i++) printf(
- for (i=1; i<=k; i++) printf(
#
); - в этом цикле будут выводиться символы#
. Количество символов определяется значением k. - printf(
\n
); - переход на новую строку. - pyr(n,k+1); - вызов функции pyr с новыми значениями параметров n и k.
- return; - завершение работы функции.
- *int main(int argc, char argv[])** - главная функция программы.
- pyr(20,1); - вызов функции pyr с аргументами 20 и 1.
- system(
PAUSE
); - пауза в программе, чтобы пользователь мог увидеть результат. - return 0; - завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д