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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Kawaii
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 9
#1

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

12.10.2009, 21:41. Просмотров 1531. Ответов 13
Метки нет (Все метки)

Всем драсте, в общем у меня такая же ситуация) помогите пожалуста написать програмки на массивах 1мерный масив:
Заменить все элементы массива большие чем "a" значением максимального эллемента этого массива
PS я её накаверкал сам только она не работает, я делал через Max
"max=a[0]
if (a[i]>max) max=a[0]" чтобы сначало найти наибольший член а дальше сравнивать с а и тд

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

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

Заменить все элементы массива с максимальным значением на сумму цифр минимального элемента - C++
Дан массив A.Заменить все элементы массива с максимальным значением на сумму цифр минимального элемента.

Заменить все элементы массива с отрицательным значением на значение минимального положительного элемента - C++
Объявить массив целых чисел и заполнить его случайными значениями с помощью функций srand() и rand(). Размер массива и диапазон значений...

Заменить все элементы массива с максимальным значением на сумму цифр минимального элемента - C++
Дан целочисленный массив А. Заменить все элементы массива с максимальным значением на сумму цифр минимального элемента.

Функции обработки массива (определить произведение элементов массива, заменить модулем все элементы массива, уничтожить элемент с заданным значением) - C++
Вот задания,не могу сделать ни одного из них,буду благодарен за помощь. Написать функции для выполнения операций над одномерным...

Одномерный массив. Найти наименьший элемент, все нулевые элементы заменить значением этого элемента - C++
Ребят,помогите,пожалуйста, с массивом,вот задание: В массиве найти наименьший элемент.Вывести на дисплей полученное значение.После...

Все элементы массива, большие 0, заменить на 100 - C++
добрый вечер, помогите пожалуйста решить эти простые примеры, те что на фото. так как я в программировании только учусь, то мне не помешала...

13
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
12.10.2009, 23:20 #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;
1
Rumus
6 / 6 / 0
Регистрация: 29.09.2009
Сообщений: 91
12.10.2009, 23:48 #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;
Да!!
1
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
13.10.2009, 00:01 #4
А, ну да.
Тогда
C++
1
2
if (a [i] > b)
    a [i] = max;
0
Kawaii
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 9
13.10.2009, 17:44  [ТС] #5
Спасибо за 1ю программу, а неподскажите как остальные 2 сделать?
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
13.10.2009, 18:51 #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 (как индексация в массивах).
1
Kawaii
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 9
25.10.2009, 13:14  [ТС] #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 (точно не помню но как-то так
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
25.10.2009, 18:26 #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 (точно не помню но как-то так
Еще раз проверил, все работает как и должно. Давайте, попробуйте еще раз с последней версией, если не получится, то выложите весь Ваш код здесь.
1
Kawaii
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 9
08.11.2009, 18:30  [ТС] #9
Помогите ещё с парой задачек )
Надо написать программу нахождения наибольшего целого Отрицательного числа удовлетворяющего неравенству x*x*x+a(a+1)<3x
И вторая: Определить, является ли последовательность элементов массива до первого отрицательного числа возрастающей.
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
08.11.2009, 19:26 #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; 
}
1
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
08.11.2009, 20:01 #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;
}
0
Kawaii
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 9
30.11.2009, 21:01  [ТС] #12
Подскажите пожалуста как такое сделать:
1 проверить является ли данная строка палиндромам
2 Проверить является ли фрагмент строки с i-того по j-тый символ палиндромом
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
01.12.2009, 10:49 #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 отсчет символов начинается с нуля.
1
Kawaii
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 9
14.12.2009, 20:08  [ТС] #14
ещё несколько задачек:
Записать в текстовый файл таблицу значений функции sinX на отрезке [A,B] c заданным шагом
и вторя: Сколько раз в тексте встречается буква о
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2009, 20:08
Привет! Вот еще темы с ответами:

Если последний элемент массива положителен, то все элементы массива увеличить на квадрат его максимального элемента - C++
Задача: Задан одномерный массив F(N) (N&lt;=60). Если последний элемент массива положителен, то все элементы массива увеличить на квадрат...

Заменить все элементы массива средним значением - C++
Дан список вещественных массивов (максимально 30 массивов). Каждый массив задается одной строкой в формате: ИМЯ=, максимальная длина строки...

Заменить все нечетные элементы массива значением соответствующего индекса - C++
дан массив А(14) в массиве надо заменить все нечетные элементы его же индексом и из замененных элементов создать массив В; помогите...

Разработать класс "Массив больших чисел", который состоит из объектов класса "Большие целые числа". Найти сумму элементов массива. - C++
Разработать класс &quot;Массив больших чисел&quot;, который состоит из объектов класса &quot;Большие целые числа&quot;. Найти сумму элементов массива. ...


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

Или воспользуйтесь поиском по форуму:
14
Yandex
Объявления
14.12.2009, 20:08
Ответ Создать тему
Опции темы

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