Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int arr[20],amount,proverka=0;
- int index_first_negative( int*);
- int index_last_negative( int*);
- int multi_between_negative( int*);
- int multi_before_and_after_negative( int*);
- int main(){
- int value,otvet;
- char c='a';
- amount=-1;
- scanf("%d",&value);
- if(value!=0 && value!=1 && value!=2 && value!=3){
- printf("Данные некорректны\n");
- return 0;
- }
- do{
- amount++;
- scanf("%d%c", &arr[amount] , &c);
- }while(c==' ');
- if(value==0){
- otvet = index_first_negative(arr);
- }
- if(value==1){
- otvet = index_last_negative(arr);
- }
- if(value==2){
- otvet = multi_between_negative(arr);
- }
- if(value==3){
- otvet = multi_before_and_after_negative(arr);
- }
- if (otvet==0 && proverka == 1){
- printf("Данные некорректны\n");
- return 0;
- }
- printf("%d\n",otvet);
- }
- int index_first_negative( int* arr){
- for(int j=0;j<amount+1;j++){
- if(arr[j]<0){
- return j;
- }
- }
- proverka = 1;
- return 0;
- }
- int index_last_negative( int* arr){
- for(int j=amount+1;j>-1;j--){
- if(arr[j]<0){
- return j;
- }
- }
- proverka = 1;
- return 0;
- }
- int multi_between_negative( int* arr){
- int left=-1,right=-1,mult=1,counter=0;
- for(int j=0;j<amount+1;j++){
- if(arr[j]<0){
- if(counter==0){
- left = j;
- counter=1;
- }
- right = j;
- }
- }
- if(left==-1 && right==-1){
- proverka = 1;
- return 0;
- }
- if(left==right){
- return arr[left];
- }
- for(int j=left;j<right;j++){
- mult*=arr[j];
- }
- return mult;
- }
- int multi_before_and_after_negative( int* arr){
- int left=-1,right=-1,mult=1,counter=0;
- for(int j=0;j<amount+1;j++){
- if(arr[j]<0){
- if(counter==0){
- left = j;
- counter=1;
- }
- right = j;
- }
- }
- if(left==-1 && right==-1){
- proverka = 1;
- return 0;
- }
- for(int j=0;j<left;j++){
- mult*=arr[j];
- }
- for(int j=right;j<amount+1;j++){
- mult*=arr[j];
- }
- return mult;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement