Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX_SIZE 101
- int index_first_negative(int arr[], int array_size){
- int index = 0;
- for(int i = 0; i < array_size; i++){
- if(arr[i] < 0){
- index = i;
- break;
- }
- }
- return index;
- }
- int index_last_negative(int arr[], int array_size){
- int index = 0;
- for(int i = array_size - 1; i > -1; i--){
- if(arr[i] < 0){
- index = i;
- break;
- }
- }
- return index;
- }
- int sum_between_negative(int arr[], int array_size){
- int sum = 0;
- int first_negative_index = index_first_negative(arr, array_size);
- int last_negative_index = index_last_negative(arr, array_size);
- for(int i = first_negative_index; i < last_negative_index; i++)
- sum += abs(arr[i]); //подсчет суммы
- return sum;
- }
- int sum_before_and_after_negative(int arr[], int array_size){
- int sum = 0;
- int first_negative_index = index_first_negative(arr, array_size);
- int last_negative_index = index_last_negative(arr, array_size);
- for(int i = 0; i < first_negative_index; i++)
- sum += abs(arr[i]);
- for(int i = last_negative_index; i < array_size; i++)
- sum += abs(arr[i]);
- return sum;
- }
- int main(){
- char c;
- int task, actual_arr_size = 0, arr[MAX_SIZE];
- scanf("%d", &task);
- for(int i = 0; i <= MAX_SIZE; i++){
- scanf("%d%c", &arr[i], &c);
- if(i == MAX_SIZE || c == '\n'){
- actual_arr_size = i + 1;
- break;
- }
- }
- switch(task){
- case(0):
- printf("%d\n", index_first_negative(arr, actual_arr_size));
- break;
- case(1):
- printf("%d\n", index_last_negative(arr, actual_arr_size));
- break;
- case(2):
- printf("%d\n", sum_between_negative(arr, actual_arr_size));
- break;
- case(3):
- printf("%d\n", sum_before_and_after_negative(arr, actual_arr_size));
- break;
- default:
- puts("Данные некорректны");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement