PDA

Просмотр полной версии : C++, массивы, найти наибольший элемент.



lnter
04.11.2008, 18:45
#include <iostream>
using namespace std;
int main ()
{
int n;
cin >> n;
int a [n];
for (int i = 0; i < n; i++)
cin >> a [i];
...

Помогите, пожалуйста, как найти наибольший элемент введённого массива и вывести его на экран?

Naeel Maqsudov
04.11.2008, 19:08
max = a[0];
for (i=1; i<n; i++) {
if (a[i]>max) {
max=a[i];
}
}
printf(max);

Albor
05.11.2008, 08:24
#include <iostream>
using namespace std;
int main ()
{
int n;
cin >> n;
int a [n];
for (int i = 0; i < n; i++)
cin >> a [i];
...

Помогите, пожалуйста, как найти наибольший элемент введённого массива и вывести его на экран?
А твой компилятор пропускает такой код? n-должна быть const. Либо нужно сделать так, если размер массива должен ввести пользователь


....
int *a=new int[n];
....
delete a;

lnter
05.11.2008, 12:11
А по-подробнее, как это записать? Как правильно ввести размер массива и найти наибольший элемент из того, что я ввёл?

Albor
05.11.2008, 12:39
А по-подробнее, как это записать? Как правильно ввести размер массива и найти наибольший элемент из того, что я ввёл?
Примерно так


#include <iostream>
using namespace std;
int main ()
{
int n;
cin >> n;
int *a =new int[n];
for (int i = 0; i < n; i++)
cin >> a [i];
//здесь вставляешь код от Naeel Maqsudov
//только переменную max нужно предварительно объявить (int max;)
delete a;// в самом конце программы. эта строка освободит выделенную под массив память
}

lnter
05.11.2008, 12:59
Спасибо большое!
А как сделать так, чтобы найти в этом массиве наибольшее число, которого нет в таком же введённом массиве b [m]? Т.е. сначала проверяется максимум, если совпадение есть, то проверяется следующий, и так, пока не найдётся нужное число?

Albor
05.11.2008, 14:13
Спасибо большое!
А как сделать так, чтобы найти в этом массиве наибольшее число, которого нет в таком же введённом массиве b [m]? Т.е. сначала проверяется максимум, если совпадение есть, то проверяется следующий, и так, пока не найдётся нужное число?
Поищи по форуму, я приводил такой код. С использованием STL там всего несколько строк кода.
PS Ты ведь уже спрашивал такой вопрос http://forum.developing.ru/showthread.php?t=15608

nowichok1
07.11.2008, 10:43
уважаемы програмисты подскажите пожалуста как можно решить эти задачи:
задача 1
Первое задание необходимо выпролнить с использованием статического массива, а второе
с использованием динамического.
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
1) максимальный элемент массива;
2) сумму элементов массива, расположенных до последнего положительного элемента.
Сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, b]. Освободившиеся в конце массива элементы заполнить нулями.
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
1) количество элементов массива, больших С;
2) произведение элементов массива, расположенных после максимального по модулю элемента.
Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом — все положительные (элементы, равные 0. считать положительными).
задача 2
Необходимо выполнять каждое задание в двух вариантах: используя локальные и динамические массивы. Размерности локальных массивов задавать именованными константами, значения элементов массива — в списке инициализации.
Дана целочисленная квадратная матрица. Определить:
1) сумму элементов в тех столбцах, которые не содержат отрицательных элементов;
2) минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.

с нетерпением жду подсказки к их решению или сомое их решение
заранее спасибо!

Albor
07.11.2008, 11:57
Задачи все похожи друг на друга. Для статического массива нужно объявить константный размер, например так: const int arr_size=10; int arr[arr_size]. Пример с динамическим массивом представлен выше. Осталось немного пошевелить мозгами.

Cyro4ek
23.05.2009, 18:38
Дана целочисленная квадратная матрица. Определить:
2) минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.

а можно узнать код этой программы?

Xmenus
02.02.2010, 13:38
Помогите решить задачу : Дана матрица (6,5). Найти строку с максимальной суммой элементов.
Вот решал и тока сумму нашел а номер строки не получается :


#include <stdio.h>
void main()
{
int a[6][5],
*P,
i,j,s,max,num;
printf("Введите 6 строк по 5 чисел\n");
for (i=0;i<6;++i)
for (j=0;j<5;j++)
scanf("%d",&a[i][j]);
printf("Матрица a:\n");
for (i=0;i<6;++i)
{for (j=0;j<5;j++)
printf("%5d",a[i][j]);
printf("\n");
}
P=&a[0][0];
for(i=0;i<6;++i)
{s=0;
for (j=0;j<5;j++)
{s+=*P;
P++;
}
if(i==0) max=s;

else if(max<s) max=s;
}
printf("Максимальная сумма строки*=%d\n",max);
}

Буду очень благодарен.

Albor
02.02.2010, 20:20
if(i==0){ max=s; num=i;}

else if(max<s) {max=s; num=i;}

В num будет сохраняться индекс строки с максимальной суммой.

Danike
18.02.2010, 21:27
Pozhaluista pomogite rewit' zada4ku, ona o4en' legkaya, ya na4inayushyi programmist i tol'ko nedavno na4al izu4at' massivi, vot zada4a: Написать программу, которая для целочисленного массива из 100 элементов определяет, сколько положительных элементов располагается между его максимальным и минимальным элементами. Zaranee bol'woe spasibo!!!:)

Sheka
19.02.2010, 09:39
Danike, решу, обращайся в асю 255507394

DexterUa
19.02.2010, 12:49
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>

void main()
{
int mass[100];
srand( (unsigned)time( NULL ) );
for(int i=0;i<100;i++)
mass[i]=rand()%1000-500;
int MinPos=0,MaxPos=0,MinKol=0,MaxKol=0,Kol=0;
for(int i=0;i<100;i++)
{
printf("%i ",mass[i]);
if(mass[i]<mass[MinPos])
{
MinPos=i;
MinKol=Kol;
}
if(mass[i]>mass[MaxPos])
{
MaxPos=i;
MaxKol=Kol;
}
if(mass[i]>0)Kol++;
}
int OurKol;
if(MinPos>MaxPos)
{
OurKol=MinKol-MaxKol;
if(mass[MaxPos]>0)OurKol--;
}
else
{
OurKol=-MinKol+MaxKol;
if(mass[MinPos]>0)OurKol--;
}
printf("\nMinPos=%i\nMinNom=%i\nMaxPos=%i\nMaxNom=%i\nKol non null is %i",MinPos,mass[MinPos],MaxPos,mass[MaxPos],OurKol);
getch();
}

Danike
19.02.2010, 16:10
Bol'woe spasibo!!!:)

rava
19.03.2010, 07:48
Ребята помогите пожалуйсто с задачами ! очень нужно!!!

1. Дана последовательность а1,а2,....а10.Среди которых есть один нуль.Вывести на печать все числа,включительно до нуля.

2. Дан двухмерный масив 4х4 из целых чисел. Преобразовать массив следуйщим образомЖ каждый эелемент , для которого i>j (i- номер строки, j - номер столбца), Увеличить на 10, все остальные элементы оставить без изменения. Преобразованый массив вывести на экраню.

Заранее спасибо!!!

rrrFer
19.03.2010, 12:25
1.
for(i=0;i<n&&a[i];i++)
cout<<a[i]<<' ';
---------

for(i=0;i<n;i++){
cout<<a[i]<<' ';
if(!a[i])
break;
}
если включительно

rava
02.04.2010, 09:22
1.
for(i=0;i<n&&a[i];i++)
cout<<a[i]<<' ';
---------

for(i=0;i<n;i++){
cout<<a[i]<<' ';
if(!a[i])
break;
}
если включительно



мне надо через Form win 32
для кнопки результат

скоро я скину что я сделал посмотрите!

mastar
12.04.2010, 18:19
Однако сложная и обширная тема

maxem72
28.06.2010, 12:25
Прошу помочь любую добрую душу. Сижу вот щас на экзамене, сделал пару задач, а мне дали последнюю, которую я нечерта не знаю. Пришлось подобрать пароль к сети куратора и выйти в интернет ^^ Может кто нибудь написать код для задачи, прошу помочь, очень нужно.

Задача: В одномерном массиве посчитать сумму элементов до последнего положительного элемента.

P.S. Заранее спасибо.


С уважением: Евдокимов Максим, студент 2го курса УРАО.