Источник:
#include <stdio.h>
void main()
{
int i, j, tree_Size, spaces, total_Spaces, x;
char tree_Characters;
printf("Enter characters to use --> ");
scanf("%c", &tree_Characters);
printf("Enter size of tree --> ");
scanf("%d", &tree_Size);
//For handling top part of tree
for (i = 0; i <= tree_Size; i++) {
printf("\n");
total_Spaces = tree_Size - i;
//Determine spaces before each number for pyramid
for (spaces = 1; spaces <= total_Spaces; spaces++)
printf(" ");
//Make first line always one number
for (j = -1; j < i; j++)
if (j <= -1)
printf("%c", tree_Characters);
else if (j > -1)
printf("%c%c", tree_Characters, tree_Characters);
}
//For handling stem and base of tree
for (i = 0; i <= tree_Size; i++) {
//if handling stem
if (i < tree_Size) {
printf("\n");
for (spaces = 1; spaces <= tree_Size; spaces++)
printf(" ");
printf("%c", tree_Characters);
}
//else if handling base
else if (i == tree_Size) {
printf("\n");
for (x = 0; x <= tree_Size * 2; x++) {
printf("%c", tree_Characters);
}
}
}
printf("\n");
}
Вот результат, который он производит до сих пор
Вот тема, которую я сделал на Reddit для лучшего понимания (комментарии)
Цель задания - чтобы он выглядел следующим образом:
*** Print a Tree ***
Enter characters to use --- *|=+
Enter size of tree --- 4
*
***
*****
*******
*********
|
|
|
|
====+====
Чего я не понимаю, так это как обрабатывать символы. Учитель упоминал о том, что нужно поместить символы в какой-то буфер, а затем очистить его и т. Д. Я понятия не имею. Кто-нибудь может помочь? Я должен использовать scanf, не могу преобразовать что-либо в строки или использовать что-либо более сложное.