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

  • Автор темы -
  • Дата начала
Статус
Закрыто для дальнейших ответов.

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

На си
 

DarkKnight

Well-Known Member
01.08.2010
653
0
#2
1) найти номер перого максимального элемента среди элементов, лежащего в диапазоне от а до в и расположенных правее первого положительного элемента
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;
}
 

Вложения

Статус
Закрыто для дальнейших ответов.