This commit is contained in:
Peter Petrek 2021-12-03 00:01:02 +01:00
parent ab43e8c0b9
commit 5f2202e6fc
2 changed files with 65 additions and 33 deletions

Binary file not shown.

View File

@ -3,29 +3,20 @@
#include <string.h>
#include <ctype.h>
#include <stdbool.h>
#include <math.h>
#define SIZE 100
bool jeKopa(int i, int inputNum[SIZE]);
void vypisovac(int vypis[SIZE], int input[SIZE], int size);
int ownPow(int base, int power);
int input(char string[100], int numbers[100]);
int main(){
char stringNum[100];
int inputNum[100], i = 0;
while (1)
{
//scanf("%s",&stringNum);
int inputNum[100] = {0}, i = 0;
fgets(stringNum,SIZE,stdin);
stringNum[strlen(stringNum)-1] = '\0';
if (!isdigit(stringNum[0]))
{
break;
}
inputNum[i] = atoi(stringNum);
i++;
}
for (int j = (i-1)/2; j >= 0; j--)
{
}
i = input(stringNum,inputNum) -1;
for (int j = 0; j < SIZE; j++){if(inputNum[j]<0-1){i++;}}
int vypis[100];
if(jeKopa(i,inputNum)){
printf("Je to taka kopa:");
@ -48,20 +39,7 @@ int main(){
}
printf("\n");
int count = 0;
for (int j = 0; j < i-1; j++)
{
if (j<=(i)/2)
{
for (int k = 0; k < count; k++)
{
printf(" ");
}
count++;
}
printf("%d\n",inputNum[vypis[j]]);
}
vypisovac(vypis,inputNum,i);
return 0;
}
@ -73,7 +51,7 @@ bool jeKopa(int i, int inputNum[SIZE]){
{
continue;
}
if (inputNum[j]>inputNum[l] || inputNum[j]>inputNum[r])
if ((inputNum[j]>inputNum[l]) || (inputNum[j]>inputNum[r]))
{
printf("Nieje kopa");
return 0;
@ -83,3 +61,57 @@ bool jeKopa(int i, int inputNum[SIZE]){
return 1;
}
void vypisovac(int vypis[SIZE], int input[SIZE], int size){
int counter = 0, count = ownPow(2,0), space = 0, i = 0;
for (i = 0; i < size; i++)
{
if (counter>=count && (i)<=(size/2))
{
count = ownPow(2,i)/2;
counter = 0;
space++;
}
else if ((counter>=count && (i)>(size/2)) || vypis[i]<count-1)
{
count = ownPow(2,size-i-1)/2;
counter = 0;
space--;
}
counter++;
for (int k = 0; k < space; k++)
{
printf(" ");
}
printf("%d\n",input[vypis[(int)i]]);
}
}
int ownPow(int base, int power){
int result = 0;
if (power>0)
{
result = 1;
}
else{
return 1;
}
for (int i = 0; i<power; i++)
{
result = result * base;
}
return result;
}
int input(char string[100], int numbers[100]){
int j = 0;
for (int i = 0; i < strlen(string); i++)
{
if (isdigit(string[i])){
numbers[j] = numbers[j]*10 + string[i]-'0';
}
else{
j++;
}
}
return j;
}