Вычисление суммы массивов в одной функции - C (СИ)

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

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

Даны три одномерных массива а [], b [], c []. Вычислить Я написала программу, но преподаватель требует чтобы суммы вычислялись в одной функции, а как это сделать не соображу. Может кто поможет. Вот моя программа:
Листинг программы
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4. #define Na 7
  5. #define Nb 7
  6. #define Nc 7
  7. void vvod(float a[ ], int n, char q);
  8. float sum(float a[ ], int n);
  9. float sum1(float b[ ], int n);
  10. float sum2(float c[ ], int n);
  11. int main()
  12. {
  13. float a[Na], b[Nb], c[Nc], y;
  14. vvod(a, Na, 'a');
  15. vvod(b, Nb, 'b');
  16. vvod(c, Nc, 'c');
  17. y=sum(a, Na)+sum1(b, Nb)+sum2(c, Nc);
  18. printf("y=%f\n",y);
  19. system("PAUSE");
  20. return 0;
  21. }
  22. void vvod(float a[], int n, char q)
  23. {
  24. int j;
  25. for (j=0; j<n; j++)
  26. {
  27. printf("Vvedite %c[%i]=\n", q, j+1);
  28. scanf("%f", &a[j]);
  29. }
  30. return;
  31. }
  32. float sum(float a[ ], int n)
  33. {
  34. int j;
  35. float s=0;
  36. for(j=0; j<n; j++)
  37. {
  38. s+=a[j];
  39. }
  40. return s;
  41. }
  42. float sum1(float b[ ], int n)
  43. {
  44. int j;
  45. float s1=0;
  46. for(j=0; j<n; j++)
  47. {
  48. s1+=b[j]*b[j];
  49. }
  50. return s1;
  51. }
  52. float sum2(float c[ ], int n)
  53. {
  54. int j;
  55. float s2=0;
  56. for(j=0; j<n; j++)
  57. {
  58. s2+=c[j]*c[j]*c[j];
  59. }
  60. return s2;
  61. }

Решение задачи: «Вычисление суммы массивов в одной функции»

textual
Листинг программы
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4.  
  5. #define SIZE 7
  6.  
  7. void Vvod(float arr[], int n, char q){
  8.     for (int j=0; j<n; j++){
  9.         printf("Enter the value of the item %c[%i]: ", q, j+1);
  10.         scanf("%f", &arr[j]);
  11.     }
  12.  
  13.     printf("\n");
  14. }
  15.  
  16. float Sum(const float a[], const float b[], const float c[],int n){
  17.     float s=0;
  18.  
  19.     for(int j=0; j<n; j++){
  20.         s+=a[j]+pow(b[j], 2)+pow(c[j], 3);
  21.     }
  22.  
  23.     return s;
  24. }
  25.  
  26. int main(int argc, char **argv){
  27.     float a[SIZE], b[SIZE], c[SIZE], y;
  28.  
  29.     Vvod(a, SIZE, 'a');
  30.     Vvod(b, SIZE, 'b');
  31.     Vvod(c, SIZE, 'c');
  32.  
  33.     y=Sum(a, b, c, SIZE);
  34.  
  35.     printf("Y=%.2f\n",y);
  36.  
  37.     system("PAUSE");
  38.  
  39.     return 0;
  40. }

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

  1. Подключение необходимых библиотек для работы с плавающей точкой и для работы с массивами
  2. Определение размера массива в 7 элементов
  3. Создание функции для ввода значений массива с помощью клавиатуры
  4. Проход по всем элементам массива и добавление значений в переменную s
  5. Возвращение суммы всех элементов массива
  6. Ввод значений для каждого из массивов
  7. Вычисление суммы массивов a, b и c
  8. Вывод результата на экран
  9. Ожидание нажатия клавиши для завершения работы программы

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


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

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

12   голосов , оценка 4.333 из 5

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

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

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