Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
wron10
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
1

Найти максимальное значение среди четных трехзначных элементов массива

08.09.2015, 16:39. Просмотров 1153. Ответов 23
Метки нет (Все метки)

Дан массив на 20 целостных чисел. Элементы массива могут принимать целые значения от 0 до 10000 включительно.
Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести
максимальное значение среди элементов массива, которые имеют чётные значения и являются трёхзначными. Если в исходном массиве нет элемента, значение которого является четным трёхзначным числом, то вывести сообщение <<не найдено>> . Исходные данные объявлены так, как показано на ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные не описанные ниже но разрешается использовать некоторые из описанных переменных.
На Си код такой:
C
1
2
3
4
5
6
7
8
9
#include <stdio.h>
#define N 20
void main() {
    int a[N];
    int i, j, max;
    for (i = 0; i < N; i++)
        scanf("%d", &a[i]);
...
}
На СИ++ я написал следующим образом:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
#define N 20
void main(){
    int a[N];
    int i, j, max;
    for (i = 0; i < N; i++)
        cout << i%10000 << endl << a[i];
    system("pause");
    return 0;
}
и также:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
#define N 20
void main(){
    int a[N];
    int i, j, max;
    for (i = 0; i < N; i++)
        cout << i << endl << j;
}
Второй код нормально работает и значения выпадают следующие:
0
-858993460
Так как мне все таки правильнее решить задачу?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2015, 16:39
Ответы с готовыми решениями:

Найти максимальное значение среди элементов массива с нечетными индексами
Составить программу, которая находит максимальное значение среди элементов...

Найти и вывести максимальное значение среди трёхзначных элементов массива, не делящихся на три
Дан целостный массив из 20 элементов. Элементы массива могут принимать целые...

Найти минимальное значение среди элементов, стоящих над главной диагональю, и максимальное среди элементов
Дана действительная матрица 7x7. Найти минимальное значение среди элементов,...

Найти минимум среди нечетных, и максимум - среди четных элементов массива
Помогите пожалуйста сделать так, чтобы эта программа брала min c нечетных, а...

Найти максимальное значение среди всех элементов, расположенных в отмеченных столбцах
Дана целочисленная матрица A(M,N). Столбец назовем отмеченным, если в нем...

23
Kuzia domovenok
2421 / 2151 / 525
Регистрация: 25.03.2012
Сообщений: 7,757
Записей в блоге: 1
08.09.2015, 17:00 2
а где тут вообще задача? я вижу две программы, выводящие на экран непойми что. Ты даже не сказал, что ожидал увидеть от них?
Ну вот тут, например
cout << i << endl << j;
разве ты ожидал увидеть какое-то значение j ? Оно у тебя даже не объявлено!

Добавлено через 1 минуту
Цитата Сообщение от wron10 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
#include <stdio.h>
#define N 20
void main() {
int a[N];
int i, j, max;
for (i = 0; i < N; i++)
scanf("%d", &a[i]);
...
}
ну, допустим. Это самое близкое к твоему непоймичему. Тут хотя бы массив имеется. А зачем два других куска программы?
0
wron10
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
08.09.2015, 17:16  [ТС] 3
Ну да но ведь число какое то возникло хотя программа не должна была работать. Ну и код который написан на СИ ведь не полный там ведь стоит знак ...
Про два куска программы, как я понимаю имеется ввиду то, что я написал на СИ++?
0
ture
529 / 337 / 206
Регистрация: 27.11.2014
Сообщений: 1,043
10.09.2015, 17:41 4
упс!

Добавлено через 9 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
 
const int N = 3;
 
int main() {
    setlocale(LC_ALL, "rus");
    
    int a[N];
    int i, j, max=-1;
    
    //заполняем и сразу ищем max
    for(i = 0; i < N; i++) {
        std::cin >> a[i];
 
        if(max < a[i]
           && a[i] / 1000 == 0 && a[i] / 100 != 0 //трехначное
           && a[i] % 2==0                         //четное
           )
            max = a[i];
    }
 
    if(max<0)
        std::cout << "<<не найдено>>" << std::endl;
    else
        std::cout << "max = " << max << std::endl;
 
    system("pause");
    return 0;   
}
0
wron10
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
10.09.2015, 18:30  [ТС] 5
Ну да но возникла неполадка, в строке int i, j, max = -1; Warning 1 warning C4101: 'j' : unreferenced local variable c:\users\денис\documents\visual studio 2013\projects\24\24\24.cpp 9 1 24
И после нажатия f5 возникает черный экран на котором нет никаких цифр.
0
Ferrari F1
793 / 522 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
10.09.2015, 18:58 6
wron10,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;
 
#define N 20
 
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    unsigned short a[N], i(0), Max(i);
    for (; i < N; i++)
    {
        cin >> a[i];
        Max = a[i] % 2 && a[i] % 100 && a[i] > Max ? a[i] : Max;
    }
    if (Max)
        cout << Max;
    else
        cout << "<<не найдено>>";
    cout << endl;
    system("pause");
    return 0;
}
0
wron10
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
11.09.2015, 11:07  [ТС] 7
Ну оба кода не доводят программу до логического завершения возникает просто черный экран без цифр. В чём проблема?
0
ture
529 / 337 / 206
Регистрация: 27.11.2014
Сообщений: 1,043
11.09.2015, 11:24 8
В теле цикла:
Цитата Сообщение от ture Посмотреть сообщение
std::cin >> a[i];
Черный экран ждет, что пользователь введет через пробел столько цифр, сколько указано в:
C++
1
const int N = 3;
Я три поставил, чтоб быстрее тестить, Вам надо вместо 3 писать 20.
0
Ferrari F1
793 / 522 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
11.09.2015, 11:29 9
wron10, прости меня, тот код, что я давал оказался нерабочим (видимо уже не соображал в то время)
Просто скопируй целиком весь мой код и замени им весь собственный код в компиляторе:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;
 
#define N 20
 
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    unsigned short a[N], i(0), Max(0);
    for (; i < N; i++)
    {
        cin >> a[i];
        if (!(a[i] % 2))
            if (a[i] / 100 < 10)
                if (a[i] / 100 > 0)
                    if (a[i] > Max)
                        Max = a[i];
    }
    if (Max)
        cout << Max;
    else
        cout << "<<не найдено>>";
    cout << endl;
    system("pause");
    return 0;
}
0
wron10
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
11.09.2015, 11:34  [ТС] 10
Ну так я скопировал и тот же результат.
0
Ferrari F1
793 / 522 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
11.09.2015, 11:36 11
wron10, тогда проблема скорее всего в вашем компиляторе
0
wron10
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
11.09.2015, 12:48  [ТС] 12
Добавлено через 7 минут
у меня знаете ещё такие неполадки были создаю проект называю его например algoritm 16 затем жму source file и add new item. Но как файл CPP визуал сохранять не хочет эту программу.При чём первые три недели всё работало нормально . Но потом возникла такая неполадка работы программы.(И она сохранятся и сейчас).
0
Ferrari F1
793 / 522 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
11.09.2015, 12:53 13
wron10, проверил в онлайн компиляторе
https://ideone.com/DcDPMg
0
wron10
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
11.09.2015, 14:19  [ТС] 14
В компиляторе проверено но у меня эта программа не срабатывает так как нужно.
0
ture
529 / 337 / 206
Регистрация: 27.11.2014
Сообщений: 1,043
11.09.2015, 15:01 15
Аналогичная хрень частенько возникает.

Делаю новый проект и копирую туда код. После этого робит.
0
wron10
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
11.09.2015, 19:53  [ТС] 16
Так я тоже копировал но ничего не получается. Создал новый проект скопировал опять возникает черный экран на котором ничего не написано.
0
Kuzia domovenok
2421 / 2151 / 525
Регистрация: 25.03.2012
Сообщений: 7,757
Записей в блоге: 1
11.09.2015, 20:35 17
Цитата Сообщение от wron10 Посмотреть сообщение
Так я тоже копировал но ничего не получается. Создал новый проект скопировал опять возникает черный экран на котором ничего не написано.
ты уверен, что при сборке тебе никаких ошибок не сообщается? Может ты тупо не замечаешь собственных ошибок, а чёрный экран - это устаревший билд запущен!
0
wron10
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
11.09.2015, 20:37  [ТС] 18
Ну компилятор пишет что ошибок в коде нет это точно я просматривал error list.
0
Kuzia domovenok
2421 / 2151 / 525
Регистрация: 25.03.2012
Сообщений: 7,757
Записей в блоге: 1
11.09.2015, 20:40 19
может ошибки есть и ты в ответ на это http://brainchamber.com/wordpress/wp...wtoShowor1.pngнажал да?

Добавлено через 1 минуту
опоздал
0
wron10
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
11.09.2015, 21:04  [ТС] 20
Точно нет ошибок.


#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;

#define N 20

int main(void)
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
unsigned short a[N], i(0), Max(0);
for (; i < N; i++)
{
cin >> a[i];
if (!(a[i] % 2))
if (a[i] / 100 < 10)
if (a[i] / 100 > 0)
if (a[i] > Max)
Max = a[i];
}
if (Max)
cout << Max;
else
cout << "<<не найдено>>";
cout << endl;
system("pause");
return 0;
}
Вбил очередной раз этот код и опять после нажатия f5 возникает черный экран с на котором нет цифр. И если я даже что то вбиваю в него и нажимаю Enter то ничего не возникает и экран закрывается.
0
11.09.2015, 21:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2015, 21:04

Найти максимальное значение среди всех элементов, расположенных в отмеченных столбцах
Дана целочисленная матрица A(M,N), где М- четно.. Столбец назовем отмеченным,...

Найти среднее арифметическое, максимальное и минимальное значение, количество отрицательных и четных элементов
Дана последовательность целых чисел из n элементов. Найти среднее...

Целочисленная матрица: найти максимальное значение среди всех элементов в отмеченных столбцах
Добрый день! Помогите, пожалуйста, с написанием программы. Дана целочисленная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru