Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article
Given an array of integers, find the sum of its elements.
Examples:
Input : arr[] = {1, 2, 3}
Output : 6
Explanation: 1 + 2 + 3 = 6Input : arr[] = {15, 12, 13, 10}
Output : 50
C
#include <bits/stdc++.h>
int
sum(
int
arr[],
int
n)
{
int
sum = 0;
for
(
int
i = 0; i < n; i++)
sum += arr[i];
return
sum;
}
int
main()
{
int
arr[] = { 12, 3, 4, 15 };
int
n =
sizeof
(arr) /
sizeof
(arr[0]);
printf
(
"Sum of given array is %d"
, sum(arr, n));
return
0;
}
Output
Sum of given array is 34
Time Complexity: O(n)
Auxiliary Space: O(1)
Another Method#2: Using Recursion
C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
sum(
int
arr[],
int
n)
{
if
(n == 0) {
return
0;
}
else
{
return
arr[0] + sum(arr + 1, n - 1);
}
}
int
main()
{
int
arr[] = { 12, 3, 4, 15 };
int
n =
sizeof
(arr) /
sizeof
(arr[0]);
printf
(
"%d"
, sum(arr, n));
return
0;
}
Time Complexity: O(n)
Auxiliary Space: O(n)
Another Method#3: Using prefix sum
C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main()
{
int
vec[] = { 12, 3, 4, 15 };
int
n =
sizeof
(vec) /
sizeof
(vec[0]);
int
prefix[n];
prefix[0] = vec[0];
for
(
int
i = 1; i < n; i++) {
int
temp = prefix[i - 1] + vec[i];
prefix[i] = temp;
}
printf
(
"%dn"
, prefix[n - 1]);
return
0;
}
Time Complexity: O(n)
Auxiliary Space: O(n), for recursive stack space.
Last Updated :
01 May, 2023
Like Article
Save Article
Немножко переделал как меня учили, но смысл остался прежним . Про генератор случ. чисел глянь в интернете там полно.
C | ||
|
Добавлено через 9 минут
Немножко не правильно условие прочитал, исправил самым элементарным способом)
Заменил вот это
C | ||
|
На это
C | ||
|
Но здесь надо делать с помощью цикла и операться на то, что все чётные i прибавляются, а нечётные i отнимаются. Щас попробую сделать.
Добавлено через 1 час 2 минуты
Можно ещё таким вариантом. Естественно, если на экране sum sum1 sum2 будет мешать, то можно убрать.
C | ||
|
Формулировка задачи:
Дан массив из 10 целочисленных элементов. Посчитать сумму всех элементов массива.
Как это в С писать, помогите с кодом
В чем ошибка?
#include "stdafx.h" #include <stdio.h> #include "conio.h" int main(void) { int i,s; s=0; char m[10]; for (i=0;i<10;i++) { scanf("%c", &m[i]); } s=s+m[i]; printf("%i",s); getch(); return 0; }
Код к задаче: «Посчитать сумму всех элементов массива»
textual
#include "stdafx.h" #include <stdio.h> #include "conio.h" int main(void) { int i,s; s=0; char m[10]; for (i=0;i<10;i++) { scanf("%c", &m[i]); s=s+m[i]; } printf("%i",s); getch(); return 0; }
Полезно ли:
12 голосов , оценка 3.583 из 5
Для
обращения к
элементу массива
указывают его имя, а затем в квадратных
скобках индекс:
имя_массива
[индекс]
Например:
const
int n=15; double C[n],S;
S=C[0]+C[n-1];
Массиву,
как и любой другой переменной, можно
присвоить начальное значение
(инициализировать):
тип
имя [размерность]={элемент_0, элемент_1,
…};
Например,
формируется массив из шести вещественных
чисел, значения элементам присваиваются
по порядку:
float
a[6]={1.2,(float)3/4,5./6,6.1};
Элементы
значения, которых не указаны, обнуляются;
для элементов a[1]
и a[2]
выполняется преобразование типов
a[0]=1.2,
a[1]=(float)3/4=0.75, a[2]=5./6=0.83333,
a[3]=6.1,
a[4]=0, a[5]=0,
Все
манипуляции с массивами в С++ осуществляются
поэлементно.
Организовывается цикл, в котором
происходит последовательное обращение
к нулевому, первому, второму и т.д.
элементам. В общем виде алгоритм
обработки массива
показан на рис. 15:
Рис. 15. Алгоритм
обработки массива
4.3.3. Ввод-вывод элементов массива
Ввод
и вывод
массивов так же осуществляется поэлементно
(рис. 16-17).
Рис.
16. Алгоритм ввода
массива.
Рис. 17. Алгоритм вывода
массива
Варианты
ввода массива:
Вариант
1. Ввод массива с помощью функции scanf.
int
main()
{
float
x[10]; int i,n;
printf(“n
N=”); scanf(“%d”,&n);
printf(“n
INPUT X n”);
for(i=0
; i<n; scanf(“%f”,&x[i]), i++); }
Вариант
2. Ввод массива с помощью оператора cin.
int
main()
{
int X[10],N,i;
cout<<“n
N=”; cin>>N;
for
(i=0; i<N; cout<<“n X[“<<i<<“]=”,
cin>>X[i],
i++);
}
Варианты
вывод массива:
Вариант
1.
Вывод массива в виде строки.
for(i=0;
i<n; printf(“%f t”,X[i]), i++);
Вариант
2.
Вывод массива в виде столбца.
for(i=0;
i<n; printf(“n %f “,X[i]), i++);
Вариант
3.
Вывод массива в виде строки.
for
(i=0;i<N; cout <<“t X[“<<i<<“]=”<<X[i],i++);
Вариант
4.
Вывод массива в виде столбца.
for
(i=0;i<N; cout <<“n X[“<<i<<“]=”<<X[i];i++)
4.3.4. Вычисление суммы элементов массива
Дан
массив X,
состоящий из n
элементов. Найти сумму элементов этого
массива (рис. 18).
Рис. 18. Алгоритм
вычисления суммы элементов массива
Фрагмент программы:
for
(S=0, i=0; i<N; S+=X[i], i++); cout<<“S=”<<S<<“n”;
4.3.5. Вычисление произведения элементов массива
Дан
массив X,
состоящий из n
элементов. Найти произведение элементов
этого массива (рис. 19).
Рис. 19. Алгоритм
вычисления произведения элементов в
массиве.
Фрагмент
программы:
for
(P=1, i=0; i<N; P*=X[i], i++); cout<<“P=”<<P<<“n”;
4.3.6. Поиск максимального элемента и его номера
Дан
массив X,
состоящий из n
элементов. Найти максимальный элемент
массива и номер (рис. 20).
Рис. 20. Алгоритм
пориска наибольшего элемента в массиве
Фрагмент программы:
for
(Max=X[0],Nmax=0,i=0;i<n;i++)
if
(Max<X[i])
{
Max=X[i]; Nmax=i; }
cout<<“Max=”<<Max<<“n”;
cout<<“Nmax=”<<Nmax<<“n”;
Алгоритм
поиска минимального
элемента в
массиве отличается тем, что в условном
блоке и в конструкции if
текста программы знак поменяется с <
на >.
4.3.7. Сортировка элементов в массиве
Сортировка
это процесс упорядочения элементов в
массиве в порядке возрастания или
убывания их значений:
Y[0]
£
Y[1] £…
£
Y[n-1] или
Y[0] ³
Y[1] ³…
³
Y[n-1].
Сортировка
пузырьковым
методом
основана на выполнении в цикле операций
сравнения и при необходимости обмена
соседних элементов (рис. 21). Для
преобразования массива Y,
состоящего из n
элементов, необходимо просмотреть его
n–1
раз, каждый
раз уменьшая диапазон просмотра на 1
элемент (рис. 22).
Рис. 21. Схема обмена
элементов
Рис. 22. Алгоритм
сортировки массива
в порядке возрастания
элементов
Фрагмент программы:
int
main()
{
int
y[10],n,i,b,j;
cout<<“n
N=”; cin>>n;
for
(i=0;i<n; cout<<“n Y[“<<i<<“]=”;
cin>>y[i]; i++);
for(j=1;j<n;j++)
for(i=0;i<n-j;i++)
if
(y[i]>y[i+1])
{
b=y[i];
y[i]=y[i+1];
y[i+1]=b;
}
for
(i=0;i<n; cout<<y[i]<<“t”, i++);
return
0;
}
Для
перестановки элементов в массиве по
убыванию
необходимо при сравнении элементов
массива заменить знак >
на <.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
#include <stdio.h>
int main()
{
int i, n,m,d, a[200], b[200], f=1,k,j,tmp,sum;
printf("Intput n:");
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
printf("Intput m:");
scanf("%d", &m);
for (i = 0; i < m; i++)
scanf("%d", &b[i]);
k=m;
for (i = 0; i < n; i++)
{
for (d = 0; d < m; d++)
{
if (b[d] == a[i])
f = 0;
}
if (f)
{
b[k++] = a[i];
}
f = 1;
}
for(i = 0 ; i < k - 1; i++)
{
for(j = 0 ; j < k - i - 1 ; j++)
{
if(b[j] > b[j+1])
{
tmp = b[j];
b[j] = b[j+1] ;
b[j+1] = tmp;
}
}
}
for (i = 0; i < k; i++)
printf("%d ", b[i]);
return 0;
}
Как тут найти сумму элементов которые я вывожу?