Водномерном массиве, заданным рандомными числами и состоящем из 10 вещественных элементов, вычислить: сумму элементов массива, расположенных между первым и последним положительными элементами. с++
// PascalABC.NET 3.0, сборка 1073 const m=5; n=4; a:array[1..m] of real=(2,-7.1,3.2,-5.4,6.9); b:array[1..n] of real=(8.1,3.2,-6.4,-3.5); k=3; var i,j:integer; sk:real; s:array[1..m,1..n] of real; begin Writeln('Массив S'); for i:=1 to m do begin for j:=1 to n do begin s[i,j]:=a[i]*b[j]; Write(s[i,j]:7:2) end; Writeln end; sk:=0; for i:=1 to m do sk:=sk+s[i,k]; Writeln('Сумма элементов столбца ',k,' равна ',sk) end.
Результат выполнения программы: Массив S 16.20 6.40 -12.80 -7.00 -57.51 -22.72 45.44 24.85 25.92 10.24 -20.48 -11.20 -43.74 -17.28 34.56 18.90 55.89 22.08 -44.16 -24.15 Сумма элементов столбца 3 равна 2.56
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
const int n = 10;
double a[n];
double s=0;
int i1=0, i2=n-1;
srand(time(0));
for (int i = 0; i < n; i++){
a[i]=-50 + (101.0 / RAND_MAX) * rand();
cout << fixed << setw (7) << setprecision (2) << a[i];
}
cout <<endl;
while (a[i1]<=0) i1++;
while (a[i2]<=0) i2--;
for (int i = i1+1; i < i2; i++) s += a[i];
cout << "s = " << s << endl;
}
Пример:
-27.52 34.26 -1.18 -8.80 35.24 6.73 18.42 -34.25 -30.21 44.03
s = -14.06