Форум программистов, компьютерный форум CyberForum.ru

Заменить все элементы массива большие чем "a" значением максимального элемента этого массива - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Kawaii
 Аватар для Kawaii
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 9
12.10.2009, 21:41     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива #1
Всем драсте, в общем у меня такая же ситуация) помогите пожалуста написать програмки на массивах 1мерный масив:
Заменить все элементы массива большие чем "a" значением максимального эллемента этого массива
PS я её накаверкал сам только она не работает, я делал через Max
"max=a[0]
if (a[i]>max) max=a[0]" чтобы сначало найти наибольший член а дальше сравнивать с а и тд

2я задачка "Из заданного двумерного массива А удалить k-тую строчку и L-й столбец, результат сохранить в массиве B"

И 3я проверить является ли данная строка полиндромом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2009, 21:41     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива
Посмотрите здесь:

Заменить все элементы массива с максимальным значением на сумму цифр минимального элемента C++
C++ Если последний элемент массива положителен, то все элементы массива увеличить на квадрат его максимального элемента
Заменить все элементы массива с максимальным значением на сумму цифр минимального элемента C++
C++ Заменить в массиве все отрицательные элементы средним арифметическим значением всех положительных, вывести оба массива
C++ Удаление максимального элемента массива, если все элементы разные
C++ Увеличить все элементы этого массива начиная с первого положительного элемента в два раза.
Каждый из элементов массива заменить средним значением первых элементов этого массива. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782
12.10.2009, 23:20     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива #2
Цитата Сообщение от Kawaii Посмотреть сообщение
PS я её накаверкал сам только она не работает, я делал через Max
"max=a[0]
if (a[i]>max) max=a[0]" чтобы сначало найти наибольший член а дальше сравнивать с а и тд
Правильно будет так:
b - число, на которое надо заменить
C++
1
2
3
4
5
6
7
8
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] > b)
        a [i] = b;
Rumus
6 / 6 / 0
Регистрация: 29.09.2009
Сообщений: 91
12.10.2009, 23:48     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива #3
Цитата Сообщение от qwert Посмотреть сообщение
Правильно будет так:
b - число, на которое надо заменить
C++
1
2
3
4
5
6
7
8
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] > b)
        a [i] = b;
Извените что вмешиваюсь но по заданию нужно заменить на максимум во втором цикле вместо
a [i] = b;
-----------
a [i] = max;
Да!!
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782
13.10.2009, 00:01     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива #4
А, ну да.
Тогда
C++
1
2
if (a [i] > b)
    a [i] = max;
Kawaii
 Аватар для Kawaii
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 9
13.10.2009, 17:44  [ТС]     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива #5
Спасибо за 1ю программу, а неподскажите как остальные 2 сделать?
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
13.10.2009, 18:51     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива #6
Задача №2:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream.h>
#include <fstream.h>
#include <process.h>
#include <windows.h>
int **masA, **masB, n, m, i, j, k, l;
int main ()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Ââåäèòå êîëè÷åñòâî ñòðîê Г¬Г*Г±Г±ГЁГўГ* A: "<< endl;
    cin>>n;
    cout<<"Ââåäèòå êîëè÷åñòâî ñòîëáöîâ Г¬Г*Г±Г±ГЁГўГ* A: "<< endl;
    cin>>m;
    masA=new int*[n];
    for(i=0; i<n; i++)
        masA[i]=new int[m];
    cout<<"Ââåäèòå ýëåìåГ*ГІГ» Г¬Г*Г±Г±ГЁГўГ* ГЂ: "<< endl;
    for(i=0; i<n; i++)
        for(j=0; j<m; j++)
        {
            cout<<"["<<i<<"]["<<j<<"]";
            cin>>masA[i][j];
        }
 
    cout<<"ÈñõîäГ*ûé Г¬Г*Г±Г±ГЁГў A: "<<endl;
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
            cout<<masA[i][j]<<" ";
        cout<<endl;
    }
    cout<<"Ââåäèòå Г*îìåð ГіГ¤Г*ëÿåìîé ñòðîêè: "<<endl;
    cin>>k;
    cout<<"Ââåäèòå Г*îìåð ГіГ¤Г*ëÿåìîãî ñòîëáöГ*: "<<endl;
    cin>>l;
    masB=new int*[n-1];
    for(i=0; i<n-1; i++)
        masB[i]=new int[m-1];
    for(i=0; i<n-1; i++)
        for(j=0; j<m-1; j++)
        {
            if(i<k && j<l)
                masB[i][j]=masA[i][j];
            if(i>=k && j<l)
                masB[i][j]=masA[i+1][j];
            if(i<k && j>=l)
                masB[i][j]=masA[i][j+1];
            if(i>=k && j>=l)
                masB[i][j]=masA[i+1][j+1];
        }
    cout<<"Ïîëó÷åГ*Г*ûé Г¬Г*Г±Г±ГЁГў B"<<endl;
    for(i=0; i<n-1; i++)
    {
        for(j=0; j<m-1; j++)
            cout<<masB[i][j]<<" ";
        cout<<endl;
    }    
     system("pause");
     return 0; 
}
Так как по условию не сказано массив каких типов, то я выбрал тип int. Так же должен заметить в данном коде под понятием номер строки и номер столбца используются номера которые начинаются с 0 (как индексация в массивах).
Kawaii
 Аватар для Kawaii
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 9
25.10.2009, 13:14  [ТС]     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива #7
valeriikozlov Пара вопроссов
Что значит
C++
1
2
      SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
Зачем
C++
1
2
3
4
#include <iostream.h>
#include <fstream.h>
#include <process.h>
#include <windows.h>
если можно обойтись
iostream и stdafx.h
И в любом раскладе у меня в конце программый вместо массива В вылезает число -390863 (точно не помню но как-то так
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
25.10.2009, 18:26     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива #8
Что значит
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Посмотрите здесь:
Русские шрифты в консоли

если можно обойтись
iostream и stdafx.h
Пожалуйста, все для вас:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
#include "stdafx.h"
#include <iostream.h>
int **masA, **masB, n, m, i, j, k, l;
int main ()
{
        cout<<"Vvedite kol-vo strok massiva A: "<< endl;
        cin>>n;
        cout<<"Vvedite kol-vo stolbcov massiva A: "<< endl;
        cin>>m;
        masA=new int*[n];
        for(i=0; i<n; i++)
                masA[i]=new int[m];
        cout<<"Vvedite elementy massiva A: "<< endl;
        for(i=0; i<n; i++)
                for(j=0; j<m; j++)
                {
                        cout<<"["<<i<<"]["<<j<<"]= ";
                        cin>>masA[i][j];
                }
 
        cout<<"Ishodhy massiv A: "<<endl;
        for(i=0; i<n; i++)
        {
                for(j=0; j<m; j++)
                        cout<<masA[i][j]<<" ";
                cout<<endl;
        }
        cout<<"Vvedite nomer udalyaemoi stroki: "<<endl;
        cin>>k;
        cout<<"Vvedite nomer udalyaemogo stolbca: "<<endl;
        cin>>l;
        masB=new int*[n-1];
        for(i=0; i<n-1; i++)
                masB[i]=new int[m-1];
        for(i=0; i<n-1; i++)
                for(j=0; j<m-1; j++)
                {
                        if(i<k && j<l)
                                masB[i][j]=masA[i][j];
                        if(i>=k && j<l)
                                masB[i][j]=masA[i+1][j];
                        if(i<k && j>=l)
                                masB[i][j]=masA[i][j+1];
                        if(i>=k && j>=l)
                                masB[i][j]=masA[i+1][j+1];
                }
        cout<<"Poluchenniy massiv B: "<<endl;
        for(i=0; i<n-1; i++)
        {
                for(j=0; j<m-1; j++)
                        cout<<masB[i][j]<<" ";
                cout<<endl;
        }    
         return 0; 
}
И в любом раскладе у меня в конце программый вместо массива В вылезает число -390863 (точно не помню но как-то так
Еще раз проверил, все работает как и должно. Давайте, попробуйте еще раз с последней версией, если не получится, то выложите весь Ваш код здесь.
Kawaii
 Аватар для Kawaii
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 9
08.11.2009, 18:30  [ТС]     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива #9
Помогите ещё с парой задачек )
Надо написать программу нахождения наибольшего целого Отрицательного числа удовлетворяющего неравенству x*x*x+a(a+1)<3x
И вторая: Определить, является ли последовательность элементов массива до первого отрицательного числа возрастающей.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
08.11.2009, 19:26     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива #10
Цитата Сообщение от Kawaii Посмотреть сообщение
Надо написать программу нахождения наибольшего целого Отрицательного числа удовлетворяющего неравенству x*x*x+a(a+1)<3x
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream.h>
#include <windows.h>
int main ()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int a, x;
    cout<<"Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГҐ a: "<< endl;
    cin>>a;
    x=-1;
    while(!(x*x*x+a*(a+1)<3*x))
        x--;
    cout<<"ÐåçóëüòГ*ГІ: x="<<x<<endl;
    return 0; 
}
Добавлено через 15 минут
Цитата Сообщение от Kawaii Посмотреть сообщение
И вторая: Определить, является ли последовательность элементов массива до первого отрицательного числа возрастающей.
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 <iostream.h>
int *mas, n, i;
int main ()
{
    int *mas, n, i, temp;
    bool fl=false;
    cout<<"Vvedite kol-vo elementov massiva: "<< endl;
    cin>>n;
    mas=new int[n];
    cout<<"Vvedite elementy massiva: "<< endl;
    for(i=0; i<n; i++)
    {
        cout<<"["<<i<<"]= "; 
        cin>>mas[i];
    }
    cout<<"Ishodhy massiv: "<<endl;
    for(i=0; i<n; i++)
        cout<<mas[i]<<" ";
    cout<<endl;
    if(mas[0]<0 || mas[1]<0)
        fl=true;
    temp=mas[1]-mas[0];
    if(temp<=0)
        fl=true;
    i=2;
    while(mas[i]>=0 && i<n)
    {
        if(mas[i]-mas[i-1]!=temp)
            fl=true;
        i++;
    }
    if(fl)
        cout<<"Ne vozrast posl"<<endl;
    else
        cout<<"vozrast posl"<<endl;
    return 0; 
}
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
08.11.2009, 20:01     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <algorithm>
#include <functional>
int main()
{
    int arr[] = {1,2,3,4,5,6,7,8,9,10};
    const int size = sizeof(arr)/sizeof(*arr);
    const int a = 5;
    std::replace_if(arr,arr+size,bind2nd(std::greater<int>(),a),*std::max_element(arr,arr+size));
    copy(arr,arr+size,std::ostream_iterator<int>(std::cout," "));
    return 0;
}
Kawaii
 Аватар для Kawaii
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 9
30.11.2009, 21:01  [ТС]     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива #12
Подскажите пожалуста как такое сделать:
1 проверить является ли данная строка палиндромам
2 Проверить является ли фрагмент строки с i-того по j-тый символ палиндромом
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
01.12.2009, 10:49     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива #13
два в одном:
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
43
44
45
46
47
#include <iostream>
#include <conio.h>
#include <Windows.h>
#include <string>
using namespace std ;
int main ()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Ââåäèòå ñòðîêó\n";
    string str;
    int a, j, i, temp;
    bool fl=false;
    getline(cin,str, '\n'); 
    a=str.length(); 
    for(j=0; j<=a/2; j++)
        if(str[j]!=str[a-j-1])
            fl=true;
    if(fl)
        cout<<"ñòðîêГ* Г*ГҐ ГЇГ*ëèГ*äðîì"<<endl;
    else
        cout<<"ñòðîêГ* ГЇГ*ëèГ*äðîì"<<endl;
    cout<<"Ââåäèòå i: ";
    cin>>i;
    cout<<"Ââåäèòå j: ";
    cin>>j;
    if(i>j)
    {
        temp=i;
        i=j;
        j=temp;
    }
    fl=false;
    while(i<j)
    {
        if(str[i]!=str[j])
            fl=true;
        i++;
        j--;
    }
    if(fl)
        cout<<"ГґГ°Г*ãìåГ*ГІ Г*ГҐ ГЇГ*ëèГ*äðîì"<<endl;
    else
        cout<<"ГґГ°Г*ãìåГ*ГІ ГЇГ*ëèГ*äðîì"<<endl;
    getch ();
    return 0; 
}
Только учтите, при вводе i и j отсчет символов начинается с нуля.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2009, 20:08     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива
Еще ссылки по теме:

C++ Каждый из элементов x[SUB]i[/SUB] массива X(n) заменить средним значением первых i элементов этого массива
Одномерный массив. Найти наименьший элемент, все нулевые элементы заменить значением этого элемента C++
C++ Заменить все отрицательные элементы массива на значения максимального
C++ Все элементы массива, большие 0, заменить на 100
Заменить все элементы массива с отрицательным значением на значение минимального положительного элемента C++

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

Или воспользуйтесь поиском по форуму:
Kawaii
 Аватар для Kawaii
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 9
14.12.2009, 20:08  [ТС]     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива #14
ещё несколько задачек:
Записать в текстовый файл таблицу значений функции sinX на отрезке [A,B] c заданным шагом
и вторя: Сколько раз в тексте встречается буква о
Yandex
Объявления
14.12.2009, 20:08     Заменить все элементы массива большие чем "a" значением максимального элемента этого массива
Ответ Создать тему
Опции темы

Текущее время: 22:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru