Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
V-Alterman
0 / 0 / 1
Регистрация: 16.10.2013
Сообщений: 93
1

Задан массив целых чисел. Записать +1 вместо максимального элемента массива и -1 вместо минимального

12.11.2013, 23:27. Просмотров 1633. Ответов 17
Метки нет (Все метки)

Не понимаю, что не так, помогите исправить код.
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
30
31
32
33
34
35
36
37
#include<conio.h>
#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Rus");
   int n, i, min, max;
   int a[100];
   cout<<"Введите количество элементов\n";
   cin>>n;
   for(i=0; i<=n; ++i)
       a[i]=rand()%100;
   cout<<"\nИсходный массив чисел:\n";
   for(i=0; i<n; ++i)      
       cout<<a[i]<<" ";
   min=max=0;
   for(i=1; i<n; ++i);
   {
 
if(a[i]>a[max])
    max=i;
if(a[i]<a[min])
    min=i;
 
   }
    a[max]=1;
    a[min]=-1;
    cout<<"\nРезультат:";
    cout<<"\nПорядковый номер минимального элемента:"<<min+1;
    cout<<"\nПорядковый номер максимального элемента:"<<max+1;
    cout<<"\nПолученный массив";
    for(i=0; i<n; ++i)
        cout<<a[i]<<" ";
    getch();
    return 0;
}
0
Миниатюры
Задан массив целых чисел. Записать +1 вместо максимального элемента массива и -1 вместо минимального  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2013, 23:27
Ответы с готовыми решениями:

Задан массив целых чисел. Записать +1 вместо максимального элемента массива и -1 вместо минимального
Попробовал написать, но что-то не получилось. Помогите исправить. int...

Записать вместо минимального элемента массива его порядковый номер
Задан массив целых чисел. Записать вместо min элемента этого массива его...

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

Файлы: найти сумму первых шести элементов массива и записать ее вместо последнего элемента
Доброго времени суток... Необходимо выполнить следующее задание: Найти...

Массив: номер минимального и максимального по модулю элемента массива
В одномерном массиве состоящем из n вещественных элементов вычислить:1) номер...

17
Serg22
104 / 104 / 58
Регистрация: 04.03.2013
Сообщений: 479
Завершенные тесты: 2
12.11.2013, 23:36 2
C++
1
2
3
4
if(a[i]>a[max])
    max=i;
if(a[i]<a[min])
    min=i;
Вы присваиваете переменным min,max значение индекса, а не значение элемента массива.
C++
1
2
3
4
if(a[i]>a[max])
    max=a[i];
if(a[i]<a[min])
    min=a[i];
1
V-Alterman
0 / 0 / 1
Регистрация: 16.10.2013
Сообщений: 93
12.11.2013, 23:48  [ТС] 3
Ничего не изменилось.
0
FreeMan108
121 / 121 / 32
Регистрация: 04.03.2013
Сообщений: 370
12.11.2013, 23:55 4
Ошибка в строчке 18

C++
1
min = max = a[0];
1
Alexxandr
143 / 52 / 17
Регистрация: 12.11.2013
Сообщений: 162
12.11.2013, 23:55 5
перед циклом
int imin=0, int imax = 0;

в цикле

if(a[i]>imax)
{
max=i;
imax = a[i];
}
if(a[i]<imin)
{
min=i;
imin = a[i];
}
0
FreeMan108
121 / 121 / 32
Регистрация: 04.03.2013
Сообщений: 370
12.11.2013, 23:55 6
Цитата Сообщение от Serg22 Посмотреть сообщение
Вы присваиваете переменным min,max значение индекса, а не значение элемента массива.
Код C++
1
2
3
4
if(a[i]>a[max])
max=a[i];
if(a[i]<a[min])
min=a[i];
Так ему это и надо:
Цитата Сообщение от V-Alterman Посмотреть сообщение
a[max]=1; a[min]=-1;
1
genaryok
22 / 22 / 8
Регистрация: 18.10.2013
Сообщений: 62
12.11.2013, 23:56 7
...
0
Serg22
104 / 104 / 58
Регистрация: 04.03.2013
Сообщений: 479
Завершенные тесты: 2
12.11.2013, 23:57 8
тьфу, не проснулся еще... с ходу глянул... пардон
1
FreeMan108
121 / 121 / 32
Регистрация: 04.03.2013
Сообщений: 370
12.11.2013, 23:57 9
Хотя это еще не все ошибки
1
Serg22
104 / 104 / 58
Регистрация: 04.03.2013
Сообщений: 479
Завершенные тесты: 2
12.11.2013, 23:59 10
Цитата Сообщение от V-Alterman Посмотреть сообщение
for(i=1; i<n; ++i);
19 строка. уберите ; это раз
1
genaryok
22 / 22 / 8
Регистрация: 18.10.2013
Сообщений: 62
13.11.2013, 00:00 11
Цитата Сообщение от V-Alterman Посмотреть сообщение
if(a[i]>a[max]) max=i; if(a[i]<a[min]) min=i;
Вот здесь замените в одном цикле i на j
1
FreeMan108
121 / 121 / 32
Регистрация: 04.03.2013
Сообщений: 370
13.11.2013, 00:00 12
Цитата Сообщение от FreeMan108 Посмотреть сообщение
min = max = a[0];
Блин, тоже перепутал по началу. Ох уж эти min и max.

Все таки вот так надо

C++
1
min = max = 0;
0
NikitaQ
5 / 5 / 3
Регистрация: 10.09.2013
Сообщений: 51
13.11.2013, 00:07 13
C++
1
2
3
4
5
6
7
8
9
10
11
max=a[0];
min=a[0];
for(i=1; i<n; ++i);{
 if(a[i]>max) {
    nMax=i;
    max=a[i]
}
 if(a[i]<min) {
    nMin=i;
    min=a[i]
}
1
FreeMan108
121 / 121 / 32
Регистрация: 04.03.2013
Сообщений: 370
13.11.2013, 00:07 14
Ну короче вот

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
30
31
32
33
34
35
36
37
38
39
40
41
42
#include<conio.h>
#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Rus");
   int n, i, minI, maxI, minE, maxE;
   int a[100];
   cout<<"Ââåäèòå êîëè÷åñòâî ýëåìåГ*òîâ\n";
   cin>>n;
   for(i=0; i<=n; ++i)
       a[i]=rand()%100;
   cout<<"\nÈñõîäГ*ûé Г¬Г*Г±Г±ГЁГў Г·ГЁГ±ГҐГ«:\n";
   for(i=0; i<n; i++)      
       cout<<a[i]<<" ";
   minI=maxI=0;
   minE=maxE=a[0];
   for(i=0; i<n; i++)
   {
 
if(a[i]>maxE) {
    maxE=a[i];
    maxI = i;
}
if(a[i]<minE) {
    minE = a[i];
    minI = i;
}
 
   }
    a[maxI]=1;
    a[minI]=-1;
    cout<<"\nÐåçóëüòГ*ГІ:";
    cout<<"\nÏîðÿäêîâûé Г*îìåð ìèГ*ГЁГ¬Г*ëüГ*îãî ýëåìåГ*ГІГ*:"<<minI+1;
    cout<<"\nÏîðÿäêîâûé Г*îìåð Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*îãî ýëåìåГ*ГІГ*:"<<maxI+1;
    cout<<"\nÏîëó÷åГ*Г*ûé Г¬Г*Г±Г±ГЁГў";
    for(i=0; i<n; i++)
        cout<<a[i]<<" ";
    getch();
    return 0;
}
Здесь вроде без ошибок
1
genaryok
22 / 22 / 8
Регистрация: 18.10.2013
Сообщений: 62
13.11.2013, 00:09 15
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
30
31
32
33
34
35
36
#include<iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Rus");
   int n, i, min, max;
   int a[100];
   cout<<"Введите количество элементов\n";
   cin>>n;
   for(i=0; i<=n; ++i)
       a[i]=rand()%100;
   cout<<"\nИсходный массив чисел:\n";
   for(i=0; i<n; ++i)      
       cout<<a[i]<<" ";
   min=max=a[0];
   for(i=0;i<n;i++)
       if(a[i]>max)
           max=a[i];
   for(i=0;i<n;i++)
        if(a[i]<min)
            min=a[i];
    for(i=0;i<n;i++)
       {if(a[i]==max)
           a[i]=1;
       else
           if(a[i]==min)
               a[i]=-1;}
 
    cout<<"\nРезультат:";
    cout<<"\nМаксимальный элемент:"<<max;
    cout<<"\nМинимальный элемент:"<<min;
    cout<<"\nПолученный массив";
    for(i=0; i<n; ++i)
        cout<<a[i]<<" ";
    return 0;
}
1
V-Alterman
0 / 0 / 1
Регистрация: 16.10.2013
Сообщений: 93
13.11.2013, 00:11  [ТС] 16
Эээм, убрал ";" из 19 строки и всё заработало.
0
Serg22
104 / 104 / 58
Регистрация: 04.03.2013
Сообщений: 479
Завершенные тесты: 2
13.11.2013, 00:14 17
Просто совет: добавьте еще
C++
1
srand(time(NULL)); //более реалистичный рандом
и обьявляйте массив
C++
1
a[n-1]
что бы в пустую не расходовать память
1
V-Alterman
0 / 0 / 1
Регистрация: 16.10.2013
Сообщений: 93
13.11.2013, 00:18  [ТС] 18
Спасибо большое всем.
0
13.11.2013, 00:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2013, 00:18

Массив: Посчитать разность максимального и минимального элемента массива
Ребят помогите пожалуйста написать програмку, она должна считать разность...

Определить индекс минимального элемента массива из 12 целых чисел
2. Определить индекс минимального элемента массива из 12 целых чисел.

Ввести массив целых чисел. Вывести позиции максимального и минимального значений скользящей суммы из 5-ти соседних элементов.
Ввести массив целых чисел. Вывести позиции максимального и минимального ...


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

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

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