Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int index_first_negative(int q, int n[]){
  5. for(int i=0; i<q; i++){
  6. if (n[i]<0){
  7. return i;
  8. }
  9. }
  10. }
  11. int index_last_negative(int q, int n[]){
  12.  
  13. for(int i=q-1; i>=0; i--){
  14. if (n[i]<0){
  15. return i;
  16. }
  17. }
  18. }
  19. int sum_between_negative(int q,int n[]){
  20. int f= index_first_negative(q,n);
  21. int j=index_last_negative(q,n);
  22. int sum=0;
  23. for (int i=f;i<j;i++){
  24. sum+=abs(n[i]);
  25. }
  26. return sum;
  27.  
  28. }
  29.  
  30.  
  31. int sum_before_and_after_negative(int q,int n[]){
  32. int sum=0;
  33. for (int i=0;i<q;i++){
  34. sum+=n[i];
  35. }
  36. return sum- sum_between_negative(q,n);
  37.  
  38. }
  39. int iscorrect(int q,int array[]){
  40. int shet=0;
  41. for(int i=0; i<array; i++){
  42. if(array[i]<0)
  43. shet++;
  44. }
  45. if( shet<2)
  46. return 0;
  47. else
  48. return 1;
  49.  
  50. }
  51.  
  52. int main(){
  53. int task;
  54. scanf("%d",&task);
  55.  
  56. int array[100];
  57. char c=' ';
  58. int i=0;
  59.  
  60. do{
  61. scanf("%d%c",&array[i],&c);
  62. i++;
  63.  
  64. }
  65.  
  66. while(c==' ');
  67. if (iscorrect(i,array)==0){
  68. printf("Данные некорректны\n");
  69. return 1;
  70. }
  71. switch(task){
  72. case 0:
  73. printf("%d", index_first_negative(i,array));
  74. break;
  75. case 1:
  76. printf("%d", index_last_negative(i,array));
  77. break;
  78. case 2:
  79. printf("%d", sum_between_negative(i,array));
  80. break;
  81. case 3:
  82. printf("%d", sum_before_and_after_negative(i,array));
  83. break;
  84. default:
  85. printf("Данные некорректны");
  86. break;
  87. }
  88. return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement