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

Массив: Удалить из массива все отрицательные элементы. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Арифметика Класса Двусвязного списка http://www.cyberforum.ru/cpp-beginners/thread392317.html
Всем привет. тут такая проблема есть у меня программа создание двусвязного циклического списка и действия над ним. и надо создать арифметику т.е сложить два списка вычесть и сравнить. проблема в следуйщем при создании функции для допустим сложение нужна ссылка на голову второго списка ( я хочу складывать не сами элементы а путем слияния). вот примерная функция void List::Summa (const List...
C++ Умножения матрицы на вектор. Задание Выполнить задачу распараллеливания алгоритма (на любом языке программирования.) Дано 100 матриц и 100 векторов, умножение каждой матрицы на каждый вектор. Пока решил так: #include <iostream> #include <stdlib.h> #include <conio.h> #include <stdio.h> #include <time.h> http://www.cyberforum.ru/cpp-beginners/thread392306.html
Задача со строками(найти в тексте определенные слова) C++
Ребят, помогите с задачкой: В имеющемся словаре найти группы слов, записанных одними и теми же буквами и отличающиеся только их порядком, то есть перестановкой, например, (КОМАР, КОРМА). Заранее спасибо.
Написать программу метод секущих C++
Помогите написать программу, нужно решить нелинейное уравнение pow(x,5)-pow(x,4)+3*pow(x,3)-5*pow(x,2)+15*x-1=0 метод секущих. С погрешностью 0.01. также нужно вывести результат на какой итерации найден корень. программа для курсовой, методом половинного деления сделал а этот никак не могу реализовать(
C++ програма на С++ http://www.cyberforum.ru/cpp-beginners/thread392283.html
Задача. Обычная ошибка при наборе состоит в том что вы помещаете руки на клавиатуре на 1 ряд правее верной позиции. Тогда "Q" будет печататься как "W", "J" печататься как "K", и т.д. Ваша задача состоит в расшифровке сообщения набранного таким образом. ВХОДНЫЕ ДАННЫЕ. входные данные состоят из нескольких строк текста. Каждая строка может содержать цифры, пробелы, прописные буквы на...
C++ Вывести содержимое очереди на экран двумя столбцами Требуется модифицировать текст программы для реализации самостоятельного задания. #include "stdafx.h" #include <windows.h> #include <iostream> #include <stdlib.h> #include <iomanip> using namespace std; struct CH подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
27.11.2011, 15:36     Массив: Удалить из массива все отрицательные элементы.
Цитата Сообщение от go Посмотреть сообщение
Сыроежка, для начала откройте глаза
в связи с вашей некомпетентностью в массивах, привожу скриншот работы моего кода, на вашем примере.
Как видите, отработало корректно, и в следующий раз прежде чем писать огромный пост на форуме, разберитесь в коде
Тяжелый случай, но, надеюсь, это изличимо!

Итак по порядку рассматриваем ваш код для массива M[1] = { -1 };, так как вы самостоятельно не можете разобраться даже в своем коде!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const int N=1;
        int M[N]={ -1 };
        int i,j,count=N;
 
        for (i=0;i<count;i++)
                if (M[i]<0)
                {
                        for (j=i;j<count-1;j++)
                                M[j]=M[j+1];
                        count--;
                        i--;
                }
                //cout << count<<endl;
                for (i=0;i<count;i++)
                        cout << M[i]<<" ";
Во внешнем цикле i устанавливается равной 0. Это меньше значения count, который равен 1. Дейстивтельно M[0] < 0, так как M[0] == -1.
Во внутреннем цикле j устанавливается равной i, то есть 0. Но j не меньше count -1, так как последнее выражение равно 0, а 0 не является меньше по значению самого себя, то есть 0.
Что это означает? Это означает, что внутреннийй цикл ни разу не выполнится!
Но зато при этом значение перменной count уменьшится на 1 и станет равным 0. В свою очередь значение переменной i также уменьшится на единицу и станет равным -1. (Это кто же вас научил управляющую переменную цикла изменять внутри тела цикла?! Ха-ха-ха!).
Внутри предложения цикла значение переменной i снова увеличивается на единицу и становится равным 0. После чего сравнивается с count, которая также равно 0. Ву а ля, как говорят франчузы, работа цикла на этом заканчивается!
Далее вы пытаетесь вывести массив на печать и устраиваете цикл

C++
1
                for (i=0;i<count;i++)
Так как значение count равно 0, то вы ничего не выводите! Массив как содержал элемент -1, так и продолжает его содержать!

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