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

Два задания по одномерным массивам. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ двумерный массив, в чем ошибка? http://www.cyberforum.ru/cpp-beginners/thread68390.html
Все элементы столбца с минимальным элементом заменить максимальным элементом. Мне написали код, но тут проблема в библиотеках, или в самом коде. Помогите исправить. #include <iostream.h> #include <algorithm> #include <functional> int main() { const int arr = {1,2,3,4,5,6,-1,-2,-3,-4,-5,-6}; const int size = sizeof(arr)/sizeof(*arr);
C++ С++ циклы Вычислить отдельно разницу и сумму всех целых чисел, попадающих в интервал . Я что то вот зделал, но воно както неправельно #include <iostream.h> #include <conio.h> #include <math.h> main (void) { int r=0,s=0,i=5; for (;i<=10;i++); http://www.cyberforum.ru/cpp-beginners/thread68387.html
Поменять местами минимальный и максимальный элементы файла C++
Дан файл вещественных чисел, в нём требуется поменять местами минимальный и максимальный элементы. Сам обмен понятен, не ясно как исползовать его для файла.Если есть соображения у кого-нибудь, напишите пожалуста.
Структуры,доступ к элементу,сравнение поля с переменной. C++
Вот что то я туплю со стуктурами((( есть функция в файле command.cpp void outMaxPrice(Marka* mark,int size) { Marka markaVR; for(int i=0;i<size-1;i++) { for(int j=0;j<size;j++)
C++ Массив с функциями http://www.cyberforum.ru/cpp-beginners/thread68378.html
Должна быть хотя бы одна функция, функция организована так чтоб выполняла обработку любой матрицы, никаких глобальных переменых,матрица задается случайным образом,матрица имеет 100 элементов, пользователь должен считать с клавиатуры количество строк и столбцов,которые будут использованы для хранения данных. Собственно само задание, хотя я его абсолютно не понимаю, поэтому пишу здесь, собственно...
C++ метод линейной интерполяции Нужно решить уравнение sin(x)+log(x)=1 методом методом линейной интерполяции Помогите найти ошибку. Стока уже дней мучаюсь.. # define M_PI ((float)3.141592653589793) # include <stdio.h> # include <conio.h> # include <math.h> void main() { подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
29.11.2009, 08:40     Два задания по одномерным массивам.
Я тоже верю, что Вам хватит одного алгоритма.
Цитата Сообщение от Darky Посмотреть сообщение
1.
Дан вещественный массив А[N]. Определить количество и индексы тех элементов массива, которые меньше элементов, стоящих в соседних позициях справа и слева, но больше минимального элемента массива.
Если не использовать доп. массивы, то однозначно здесь два прохода: в первом ищем минимальный элемент (заносим его в переменную min). Во втором проходе ищем элементы (A[i-1]>A[i] && A[i]<A[i+1] && A[i]>min). Если такие находим, то выводим на экран i, и еще count++ (счетчик элементов подходящих под условие). В конце выводим на экран count. Второй проход ограничен так for(i=1; i<N-1; i++), что бы не выйти за границы массива.

Добавлено через 20 минут
Цитата Сообщение от Darky Посмотреть сообщение
2.
Дан целочисленный массив А[N]. Найти элемент массива с максималь-ной суммой делителей. Вывести на экран значение найденного элемента и его порядковый номер в массиве.
Вторая будет по объемней насчет кода, но решается за один проход. Завести придется переменные (это не все переменные,которые придется заводить, я здесь выделяю только те, котрые необходимы для сравнения суммы делителей) sum (для хранения максимального суммы делителей) и sum_temp (для подсчета суммы делителей текущего элемента), i_sum (для хранения индекса элемента с максимальной суммой делителей). При проходе массива действуем так. Берем очередной элемент массива A[i]. Затем запускаем подпрограмму подсчета суммы делителей (можно ее оформить и отдельной функцией по желанию). Она выглядит так: for(j=2; j<A[i]/2; j++) - т.е. мы перебираем все числа в диапазоне от 2 до A[i]/2, Проверяем каждое число на делимость без остатка, если делится, то sum_temp увеличиваем на это число, само число A[i] делим тоже на этот делитель. Вообще-то A[i] изменять нельзя (оно нам еще пригодится в конце, для вывода на экран), поэтому перед проверкой на делимость, нужно завести еще одну переменную temp=A[i];, а потом уже проверять temp. Итак temp тоже делим на этот делитель. Затем прверяем снова делимость без остатка уменьшенного temp на этот же делитель, и т.д. пока будет деоится без остатка. Затем берем следующий делитель. Продолжаем вычисление делителей пока temp>1. Затем сравниваем полученное sum_temp с sum. Если sum_temp>sum, то sum_temp=sum и i_sum=i. Вроде основная часть все.
Если честно, то проще код было написать, чем алгоритм. Надеюсь, что описал все понятно. Если что не поняли, спрашивайте.
 
Текущее время: 15:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru