Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int index_first_negative(int q, int n[]){
- for(int i=0; i<q; i++){
- if (n[i]<0){
- return i;
- }
- }
- }
- int index_last_negative(int q, int n[]){
- for(int i=q-1; i>=0; i--){
- if (n[i]<0){
- return i;
- }
- }
- }
- int sum_between_negative(int q,int n[]){
- int f= index_first_negative(q,n);
- int j=index_last_negative(q,n);
- int sum=0;
- for (int i=f;i<j;i++){
- sum+=abs(n[i]);
- }
- return sum;
- }
- int sum_before_and_after_negative(int q,int n[]){
- int sum=0;
- for (int i=0;i<q;i++){
- sum+=n[i];
- }
- return sum- sum_between_negative(q,n);
- }
- int iscorrect(int q,int array[]){
- int shet=0;
- for(int i=0; i<array; i++){
- if(array[i]<0)
- shet++;
- }
- if( shet<2)
- return 0;
- else
- return 1;
- }
- int main(){
- int task;
- scanf("%d",&task);
- int array[100];
- char c=' ';
- int i=0;
- do{
- scanf("%d%c",&array[i],&c);
- i++;
- }
- while(c==' ');
- if (iscorrect(i,array)==0){
- printf("Данные некорректны\n");
- return 1;
- }
- switch(task){
- case 0:
- printf("%d", index_first_negative(i,array));
- break;
- case 1:
- printf("%d", index_last_negative(i,array));
- break;
- case 2:
- printf("%d", sum_between_negative(i,array));
- break;
- case 3:
- printf("%d", sum_before_and_after_negative(i,array));
- break;
- default:
- printf("Данные некорректны");
- break;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement