Другие языки программирования и технологии

Написать программу на языке с++

Помогите, нужно написать программу на c++
double S, max = min = 0 ;
int i, i_max = i_min = 1 ;
for(i = 1 ; i <= n ; i++)
{
S = sin(pow(x,i) ; // вычисляем текущий синус только один раз, чтобы ускорить и упростить обработку
if(S > max) { max = S ; i_max = i ; } // текущий максимальный элемент и его номер
if(S < min ) { min = S ; i_min = i ; } // текущий минимальный элемент и его номер
}
// Можно выводить и cout, но с printf нагляднее:
printf("Элемент №: %d имеет максимальное значение, равное %f \n", i_max, max) ;
printf("Элемент №: %d имеет минимальное значение, равное %f" \n", i_min, min) ;
ИГ
Иван Горин
51 914
Лучший ответ
#include "iostream"

#include "cmath"

{ double x,y,s,min,max; int k,n,kmin,kmax; cout << "x n > "; cin >> x >> n; if (x==0|| x==1) cout << "max: 1-n; min: 1-n\n"; else if (x==-1) cout << "max: all even numbers \nmin: all odd numbers\n"; else { max=-1; min=1; y=1; for (k=1; k <= n; k++) { y*=x; s=sin(y); if (s > max) { max=s; kmax=k; } if (s < min) { min=s; kmin=k; } } cout << kmin << ' > ' << min << '\n' << kmax << ' > ' << max << '\n'; } }
unsigned int n = 10;
double x = 30.0; // В градусах
pair < double, int > dVarMin;
pair < double, int > dVarMax;
dVarMin.first = sin(x*3.14159/180);
dVarMin.second = 1;
dVarMax.first = sin(x*3.14159/180);
dVarMax.second = 1;
for(int i(2); i <= n; ++i){
double temp = pow(sin(x*3.14159/180), i);
if(dVarMin.first > temp){ dVarMin.first = temp; dVarMin.second = i;}
if(dVarMax.first < temp){ dVarMax.first = temp; dVarMax.second = i;}
}
// Отсчет ведется от 1 а не от 0 !!!
cout << "Index of min: " << dVarMin.second << endl;
cout << "Index of max: " << dVarMax.second << endl;
Олег Арефьев
Олег Арефьев
10 755