#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
float A[10];
cout << "Заполните массив данными:" << endl;
for (int i = 0; i < 10; i++)
{
cout << "[" << i + 1 << "]: ";
cin >> A[i];
}
float max = A[0];
int index = 0;
for (int i = 0; i < 10; i++)
{
if (A[i] > max)
{
max = A[i];
index = i;
}
}
cout << "\nМаксимальное значение: " << max << endl;
float proizv = 1;
for (int i = index+1; i < 10; i++)
{
proizv = proizv * A[i];
}
cout << "\nПроизведение элементов массива расположенных после максимального: " << proizv << endl;
return 0;
}
Написано в visual studio.
В приведенном ниже примере значение 4.03099999999977E+0001 читается следующим образом:
Для того, чтобы получать вывод в "привычном" виде, можно использовать форматирование. Для этого, в операторе вывода после значения переменной указывается конструкция вида m:n, где m- общее количество позиций, отводимое под запись числа (если 0 - то количество позиций определяется автоматически так, чтобы число поместилось), а n- количество позиций, отводимое под дробную часть.
Такая запись может применяться как для общего описателя типа вещественных чисел real, так и для конкретного (например, double - чисел "двойной точности", т.е. восьмибайтных). В примере хорошо видно, как использование двойной точности отражается на выводе результата в "научном" формате .
Пример на Турбо Паскаль
{$G+,N+}
uses Crt;
procedure Sum1(a,b,c,d:real;var r:real);
begin
r:=a+b+c+d
end;
procedure Sum2(a,b,c,d:double;var r:double);
begin
r:=a+b+c+d
end;
var
e,f,g,h,res1:real;
p,q,r,s,res2:double;
begin
ClrScr;
Write('e f g h= '); Read(e,f,g,h);
Sum1(e,f,g,h,res1);
Writeln('res1= ',res1,' = ',res1:0:2);
Write('p q r s= '); Read(p,q,r,s);
Sum2(p,q,r,s,res2);
Writeln('res2= ',res2,' = ',res2:0:2);
ReadKey
end.
Тестовое решение:
e f g h= 12.74 24.17 -5.6 9
res1= 4.03099999999977E+0001 = 40.31
p q r s= 12.74 24.17 -5.6 9
res2= 4.03100000000000E+0001 = 40.31