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