По условию задачи можно задать любой массив, так что я его рандомизировал. Сейчас только начал составлять код, при компиляции выдает кучу ошибок, но это не важно сейчас.
Можно ли составить код по такой логике?
#include<math.h>
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<cstdlib>
using namespace std;
int main()
{ int mass[20];
int max;
int i;
const int n=20;
double result = 1.0;
int massiv[n],Xmax,Nmax,u,x;
for( int i=0; i<n; i++)
{
massiv[i] =u=(std::rand() % 2000)-1000;
std::cout << "{";
std::cout << massiv[i] << " ";
std::cout <<"} ";
}
for(int i = 0; i < 20; i++){
mass[i] = i;
}
max = mass[0];
for(int i = 1; i < 20; i++){
if(mass[i] > max){
max = mass[i];
}
}
std::cout <<"max value: "<< massiv[Nmax]<< " at index " <<Nmax;
{
std::cin.ignore();
return 0;
}
getchar();
}
Охохонюшки, придётся полный рабочий код приводить.
Массив заполняется, выводится - заметьте, что скобки нужны до и после цикла, но не внутри.
Затем приводится первый вариант - он только находит сам максимальный элемент, но не его позицию.
Второй вариант находит и максимум, и его индекс в массиве
#include <iostream>
using namespace std;
int main() {
const int n=20;
int massiv[n], Xmax, Nmax, u;
std::cout << "{";
for( int i=0; i<n; i++)
{
massiv[i] =u=(std::rand() % 2000)-1000;
std::cout << massiv[i] << " ";
}
std::cout <<"}\n ";
//----------------------------
Xmax=massiv[0];
for (int i=1; i<n;i++)
Xmax = massiv[i]> Xmax?massiv[i]: Xmax;
std::cout <<"Просто max: "<< Xmax << "\n" ;
//----------------------------
Xmax=massiv[0];
Nmax = 0;
for (int i=1; i<n;i++)
if (massiv[i] > Xmax) //или (massiv[i] > massiv[Nmax])
{
Xmax = massiv[i];
Nmax = i;
}
std::cout <<"max value: "<< massiv[Nmax]<< " at index " << Nmax;
return 0;
}
Вот что выводится:
{383 -114 -223 -85 793 -665 386 -508 -351 421 -638 -973 -310
-941 763 926 -460 426 172 736 }
Просто max: 926
max value: 926 at index 15
для нахождения максимального int значения,создаем массив
int mass[10];
int max;
заполняем массив
for(int i = 0; i < 10; i++){
mass[i] = i;
}
указываем что max будет равен первому элементу
max = mass[0];
ищем максимальное значение в массиве
for(int i = 0; i < 10; i++){
if(mass[i] > max){
max = mass[i];
}
}
Я бы предложил два раза уменьшить цикл :
int max_from_array(const int* m, const int size)
{
int p = (size % 2) ? size / 2 + 1 : size / 2,
max = *m;
for (int i = 1 ; p < size; ++p, ++i)
{
if (m[p] > max)
max = (m[p] > m[i]) ? m[p] : m[i];
else if (max < m[i])
max = m[i];
}
return max;
}
int main()
{
const int n = 20;
int massiv[n] ;
for (int i = 0; i < n; ++i) {
massiv[i] = rand()%2000 - 1000; // функция не в пространстве std
std::cout << massiv[i] << ' ';
}
std::cout << std::endl << max_from_array(massiv, n);
return 0;
}
ну если совсем писать лень, то можно и так:
#include <algorithm>
#include <iostream>
using namespace std;
int main(){
int mass[]{3,12,4,1,0};
int maxim=*max_element(begin(mass), end(mass));
cout<<maxim<<endl;
return 0;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В файле содержатся несколько прокси ip:portНе могу по циклу проверить каждый прокси на доступность к сайту
Можно ли в методе compareTo сравнивать два поля? Попыталась сравнить то сортируетДля чего тогда интерфейс comparator???
Собственно, суть в вопросеНапример, есть строка
Мне необходимо проверить правильность заполнения текстовых полей в созданном JFrameВ этих полях должны быть только цифры и знак минус