Найти сумму всех элементов массива - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Заданы два случайных вещественных массива А(n) и B(m) со значениями от -2 до 2. Первым на печать вывести массив, сумма значений которого окажется наименьшей. почему не получается сумма вроде все нормально написал?
Листинг программы
  1. #include <stdio.h>
  2. #include<locale.h>
  3. #include <math.h>
  4. #include <stdlib.h>
  5. #include <time.h>
  6. #define _USE_MATH_DEFINES
  7. #define a -2
  8. #define b 2
  9. int main( int argc, char**argv)
  10. {
  11. int n, m;
  12. int i=0;
  13. double *A;
  14. double *B;
  15. double s=0;
  16. double s1=0;
  17. double sn=1.0;
  18. srand( time( 0 ) );
  19. printf ("Enter n:");
  20. scanf ("%d",&n);
  21. printf ("Enter m:");
  22. scanf ("%d",&m);
  23. printf("A \n");
  24. A=(double*)malloc(n*sizeof(double));
  25. for(i = 0; i<n; i++)
  26. {
  27. A[i]=rand()/(double)RAND_MAX*(b - a) + a;
  28. printf("%lg\n", A[i]);
  29. }
  30. printf("s(A) \n");
  31. for(i=0; i<n; i++)
  32. {
  33. s+=A[i];
  34. printf("%lg\n", s);
  35. }
  36. printf("B \n");
  37. B=(double*)malloc(m*sizeof(double));
  38. for(i = 0; i<m; i++)
  39. {
  40. B[i]= rand()/(double)RAND_MAX*(b - a) + a;
  41. printf("%lg\n",B[i] );
  42. }
  43. printf("s(B) \n");
  44. for(i=0; i<n; i++)
  45. {
  46. s1+=s1+B[i];
  47. printf("%lg\n", s1);
  48. }
  49. system("pause");
  50. free (A);
  51. free (B);
  52. return 0;
  53. }

Решение задачи: «Найти сумму всех элементов массива»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define a -2
  5. #define b 2
  6.  
  7. int main( int argc, char**argv)
  8. {
  9.     int n, m;
  10.     int i=0;
  11.     double *A;
  12.     double *B;
  13.     double sA=0;
  14.     double sB=0;
  15.     double sn=1.0;
  16.     srand( time( 0 ) );
  17.     printf ("Enter n:");
  18.     scanf ("%d",&n);
  19.     printf ("Enter m:");
  20.     scanf ("%d",&m);
  21.    
  22.     A=(double*)malloc(n*sizeof(double));
  23.     B=(double*)malloc(m*sizeof(double));
  24.  
  25.     for(i = 0; i < n; i++) {
  26.         A[i]=rand() / (double)RAND_MAX * (b - a) + a;
  27.     }
  28.  
  29.     for(i = 0; i < m; i++){
  30.         B[i]= rand() / (double)RAND_MAX * (b - a) + a;
  31.     }
  32.  
  33.  
  34.     for(i = 0; i < n; i++){
  35.         sA +=A[i];
  36.     }
  37.  
  38.     for(i = 0; i < m; i++){
  39.         sB +=B[i];
  40.     }
  41.  
  42.     if(sA < sB){
  43.         printf("\ns(A) = %lg \n", sA);
  44.         for(i = 0; i < n; i++){
  45.             printf("%lg \n", A[i]);
  46.         }
  47.     }
  48.    
  49.     printf("\ns(B) = %lg \n", sB);
  50.     for(i = 0; i < m; i++){
  51.         printf("%lg \n", B[i]);
  52.     }
  53.    
  54.     if(sA >= sB){
  55.         printf("\ns(A) = %lg \n", sA);
  56.         for(i = 0; i < n; i++){
  57.             printf("%lg \n", A[i]);
  58.         }
  59.     }
  60.  
  61.     free (A);
  62.     free (B);
  63.  
  64.     system("pause");
  65.     return 0;
  66. }

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы: stdio.h, stdlib.h, time.h
  2. Определяются значения a и b. Значение a принимается равным -2, а b - переменной, которую будет использовать генератор случайных чисел.
  3. Задаются значения переменных n и m. Пользователю предлагается ввести число n, затем число m.
  4. Выделяется память под массивы A и B с помощью функций malloc.
  5. Генерируются случайные значения для элементов массивов A и B с помощью функции rand и оператора /.
  6. Суммируются все элементы массива A с помощью цикла for и переменных sA и i.
  7. Суммируются все элементы массива B с помощью цикла for и переменных sB и i.
  8. С помощью условного оператора if выводится сумма sA и элементы массива A.
  9. Выводится сумма sB.
  10. С помощью условного оператора if выводится сумма sA и элементы массива A.
  11. Освобождается память, выделенная под массивы A и B с помощью функций free.
  12. Вводится пауза с помощью функции system(pause).
  13. Возвращается 0, что означает успешное завершение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы