fork(1) download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int max(int* arr, int n){
  6. int id = 0;
  7. for (int i = 0, maxi = arr[0]; i < n; i++)
  8. {
  9. if(arr[i]>arr[id]){
  10.  
  11. id = i;
  12. }
  13. }
  14. return id;
  15. }
  16.  
  17. int ex2(int* arr, int n){
  18. int lastid=0, firstid=n;
  19. for (int i = n; i!=0; i--)
  20. if(arr[i]==0){
  21. lastid = i;
  22. break;
  23. }
  24.  
  25. for (int i = 0; i<n; i++)
  26. if(arr[i]==0){
  27. firstid = i;
  28. break;
  29. }
  30.  
  31. if(firstid != lastid){
  32. int sum = 0;
  33.  
  34. for (;firstid < lastid; firstid++)
  35. sum+=arr[firstid];
  36.  
  37. return sum;
  38. }
  39. else
  40. {
  41. return -1;
  42. }
  43. }
  44.  
  45. void swap(int *xp, int *yp)
  46. {
  47. int temp = *xp;
  48. *xp = *yp;
  49. *yp = temp;
  50. }
  51.  
  52. int main(){
  53.  
  54. int n;
  55. printf("Размер массива -> ");
  56. scanf("%d", &n);
  57. int* arr = (int*)malloc(n*sizeof(int));
  58. srand((unsigned int)time(NULL));
  59. for (size_t i = 0; i < n; i++)
  60. arr[i] = rand()%100;
  61.  
  62. printf("Номер максимального элемента: %d\n", max(arr, n));
  63. printf("Сумма между 0-ми: %d\n", ex2(arr, n));
  64.  
  65. int k = n/2;
  66. for (int i = 0; i < n; i++, k){
  67. if (i % 2 != 0){
  68. swap(&arr[k],&arr[i]);
  69. k++;
  70. }
  71. printf("%d ", arr[i]);
  72. }
  73. }
  74.  
  75.  
  76.  
Success #stdin #stdout 0s 5584KB
stdin
10
2
1 2 0 4 5 6 0 8 9 10
stdout
Размер массива -> Номер максимального элемента: 3
Сумма между 0-ми: 0
44 8 24 6 24 95 97 97 1 32