void ComputeSkyline( struct Skyline *s, struct Building building ) { int left, right, i; if ( s->num==0 ) { s->num = 3; s->height[0] = 0; s->height[1] = buildings->height; s->height[2] = 0; s->x[0] = MIN_X; s->x[1] = buildings->left; s->x[2] = buildings->right; s->x[3] = MAX_X; } else { for (i = 0; i < s->num; i++) { if (s->x[i] < building.left && building.left < s->x[i+1]) left = i + 1; if (s->x[i] < building.right && building.right < s->x[i+1]) right = i + 1; } insert(s->x, s->num+1, right, building.right); insert(s->height, s->num, right, s->height[right-1]); s->num++; insert(s->x, s->num+1, left, building.left); insert(s->height, s->num, left, MAX(building.height, s->height[left-1])); s->num++; for (i = left; i < right + 1; i++) { s->height[i] = MAX(s->height[i], building.height); } for (i = 1; i < s->num-1; i++) { if (s->height[i] == s->height[i+1]) { remove1(s->x, s->num+1, i+1); remove1(s->height, s->num+1, i+1); s->num--; } } } }
int main(void) { char original[50]; int i = 0; int numofchartoremove; int position; char character; int remove1(char original[], int position, int numofchartoremove); printf("enter the string \n"); do{ character = getchar(); original[i] = character; ++i; }while(character != '\n'); printf("%s", original); original[i - 1] = '\0'; printf("enter the position\n"); scanf("%i", &position); printf("enter the number of characters to remove\n"); scanf("%i", &numofchartoremove); remove1(original, position, numofchartoremove); return 0; }