usaa20/a3/program.c
Maryna Kravtsova c90ba22b74 a3
2020-11-30 12:49:20 +01:00

97 lines
1.7 KiB
C

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <ctype.h>
#include <stdbool.h>
void check_heap(int size, long int* array){
int i;
for(i = 0; i < size; i++){
int c = (2 * i) + 1;
if(c >= size) break;
if(!(array[c] >= array[i])){
printf("Nie je kopa.\n");
exit(0);
}
c = (2 * i) + 2;
if(c >= size) break;
if(!(array[c] >= array[i])){
printf("Nie je kopa.\n");
exit(0);
}
}
printf("Je to taka kopa:\n");
}
void space(int l){
int i = 0;
for(i = 0; i < l; i++){
printf(" ");
}
}
void print(long int *arr, int i, int size, int c, int level){
if(i >= size){
return;
}
space(level);
printf("%ld\n", arr[i]);
print(arr,i*2+1, size, c, level+1);
print(arr, i*2+2, size, c, level+1);
}
int main() {
char cisla[100];
char *r = fgets(cisla, 100, stdin);
if(r == NULL){
return 0;
}
cisla[strlen(cisla)-1] = '\0';
int size = strlen(cisla);
long int num[size];
char *end;
int i = 0;
while(i != size){
if(i == 0){
long int c = strtol(cisla, &end, 10);
num[i] = c;
}
else{
long int next = strtol(end, &end, 10);
num[i] = next;
}
i++;
}
i = 0;
int count = 0;
while(num[i] != '\0'){
count++;
i++;
}
i = 0;
int index = 0;
int l = 0;
check_heap(count, num);
int j = 0;
print(num, index, count,num[0],l);
return 0;
}