Задачи: Массивы, индексы, строки, выделение слов + сортировка

Тема в разделе "C/C++/C#", создана пользователем -, 3 дек 2010.

Статус темы:
Закрыта.
  1. Гость

    здавствуйте, помогите пожалуйстарешить пару задачек оч надо:
    1) найти номер перого максимального элемента среди элементов, лежащего в диапазоне от а до в и расположенных правее первого положительного элемента
    2)проверить, все ли строки матрицы содержат хотябы один нулевой элемент. Если нет то все отрицательные элементы матрицы заменить на нулевыею
    3)дан массив а размерностью 30. Элементами массива являются некоторые слова. Расположить каждый элемент массива по алфавиту и в порядке возростания. Отсортировать элементы по первой букве и в порядке убывания. Реализовать с помощью указателей

    На си
     
  2. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Код (C++):
    /*
    1) найти номер перого максимального элемента среди элементов,
    лежащего в диапазоне от а до в и расположенных правее первого положительного элемента
    */

    /*
    codeby.net
    Autor: DarkKnight125 (Denis Goncharov)
    */

    #include <iostream>
    #include <time.h>

    using namespace std;

    void main(void)
    {
    setlocale(LC_ALL, ".1251"); //Установить локаль в 1251 код. станицу
    srand(time(NULL)); //Инициализация генератора случ. величины

    int *Arr; //Наш динамический массив
    int Size; //Размерность массива
    int a,b; //Диапозон значений
    bool SearchPlusEl = false; //Флаг о найденом первом положительном элемента
    int NumberMaxEl = -1; //Номер первого макс. элемента
    int MaxValue = numeric_limits<int>::min(); //Значение макс. элемента, пока присвоим самое маленькое значение
    cout << "Введите размерность массива Size = ";
    cin >> Size;
    Arr = new int[Size]; //Выделение памяти под массив

    cout << "Введите начало диапозона a = ";
    cin >> a;
    cout << "Введите конец диапозона b = ";
    cin >> b;
    //Заполним элементы массив случ. величинами
    cout << "Массив Arr :" << endl;
    for (int i = 0; i< Size; i++)
    {
    Arr[i] = rand()%1000 * (rand()%2?1:-1); //сгенерировать величинут от -999 до 999
    cout <<Arr[i] << " ";
    //Что бы не создавать дополнительный цикл, найдем все параметры тут
    if (i >= a && i<=b) //Диапозон
    {
    if (SearchPlusEl && Arr[i]>MaxValue) //Если макс положительный элемент уже был найден, и текущий эл. массива > MaxValue
    {
    NumberMaxEl = i; //Запомним его позицию
    MaxValue = Arr[i]; //Перезапишим MaxValue
    }
    //Теперь по флагу первого полож. элемента
    if (Arr[i] > 0 && !SearchPlusEl)
    SearchPlusEl = true;
    }
    }
    cout <<endl << "----------------------------------------------" << endl;

    //Вывод информации
    cout << "Значение макс. элемента MaxValue = " << MaxValue << endl;
    cout << "Позиция первого макс. элемента NumberMaxEl = " << NumberMaxEl << endl;
    }
     

    Вложения:

    • otrmax.jpg
      otrmax.jpg
      Размер файла:
      46,6 КБ
      Просмотров:
      12
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей