Найти сумму всех элементов массива - C (СИ)
Формулировка задачи:
Заданы два случайных вещественных массива А(n) и B(m) со значениями от -2 до 2. Первым на печать вывести массив, сумма значений которого окажется наименьшей.
почему не получается сумма вроде все нормально написал?
#include <stdio.h> #include<locale.h> #include <math.h> #include <stdlib.h> #include <time.h> #define _USE_MATH_DEFINES #define a -2 #define b 2 int main( int argc, char**argv) { int n, m; int i=0; double *A; double *B; double s=0; double s1=0; double sn=1.0; srand( time( 0 ) ); printf ("Enter n:"); scanf ("%d",&n); printf ("Enter m:"); scanf ("%d",&m); printf("A \n"); A=(double*)malloc(n*sizeof(double)); for(i = 0; i<n; i++) { A[i]=rand()/(double)RAND_MAX*(b - a) + a; printf("%lg\n", A[i]); } printf("s(A) \n"); for(i=0; i<n; i++) { s+=A[i]; printf("%lg\n", s); } printf("B \n"); B=(double*)malloc(m*sizeof(double)); for(i = 0; i<m; i++) { B[i]= rand()/(double)RAND_MAX*(b - a) + a; printf("%lg\n",B[i] ); } printf("s(B) \n"); for(i=0; i<n; i++) { s1+=s1+B[i]; printf("%lg\n", s1); } system("pause"); free (A); free (B); return 0; }
Решение задачи: «Найти сумму всех элементов массива»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> #define a -2 #define b 2 int main( int argc, char**argv) { int n, m; int i=0; double *A; double *B; double sA=0; double sB=0; double sn=1.0; srand( time( 0 ) ); printf ("Enter n:"); scanf ("%d",&n); printf ("Enter m:"); scanf ("%d",&m); A=(double*)malloc(n*sizeof(double)); B=(double*)malloc(m*sizeof(double)); for(i = 0; i < n; i++) { A[i]=rand() / (double)RAND_MAX * (b - a) + a; } for(i = 0; i < m; i++){ B[i]= rand() / (double)RAND_MAX * (b - a) + a; } for(i = 0; i < n; i++){ sA +=A[i]; } for(i = 0; i < m; i++){ sB +=B[i]; } if(sA < sB){ printf("\ns(A) = %lg \n", sA); for(i = 0; i < n; i++){ printf("%lg \n", A[i]); } } printf("\ns(B) = %lg \n", sB); for(i = 0; i < m; i++){ printf("%lg \n", B[i]); } if(sA >= sB){ printf("\ns(A) = %lg \n", sA); for(i = 0; i < n; i++){ printf("%lg \n", A[i]); } } free (A); free (B); system("pause"); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы: stdio.h, stdlib.h, time.h
- Определяются значения a и b. Значение a принимается равным -2, а b - переменной, которую будет использовать генератор случайных чисел.
- Задаются значения переменных n и m. Пользователю предлагается ввести число n, затем число m.
- Выделяется память под массивы A и B с помощью функций malloc.
- Генерируются случайные значения для элементов массивов A и B с помощью функции rand и оператора /.
- Суммируются все элементы массива A с помощью цикла for и переменных sA и i.
- Суммируются все элементы массива B с помощью цикла for и переменных sB и i.
- С помощью условного оператора if выводится сумма sA и элементы массива A.
- Выводится сумма sB.
- С помощью условного оператора if выводится сумма sA и элементы массива A.
- Освобождается память, выделенная под массивы A и B с помощью функций free.
- Вводится пауза с помощью функции system(
pause
). - Возвращается 0, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д