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

Неправильный вывод. Преобразовать массив: сначала расположить элементы, модуль которых не больше 1 - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подсчитать количество различных разбиений числа N на натуральные слагаемые http://www.cyberforum.ru/cpp-beginners/thread1215324.html
Условие: требуется подсчитать количество различных разбиений числа N на натуральные слагаемые. Два разложения считаются различными, если одно нельзя получить из другого путем перестановки слагаемых. Имеется вот такой код, но нужно найти в нём ошибку. #include "stdio.h" #include "stdafx.h" #include <iostream> #include <cstring> using namespace std;
C++ Работа с последовательностью Доброго времени суток. Помогите пожалуйста ребят в задачке. Не могу понять как делать В зависимости от того, образуют элементы заданного массива целых чисел из n элементов строго бывающую, не возрастающую, строго возрастающую, неубывающую последовательность, выдать соответствующее сообщение. http://www.cyberforum.ru/cpp-beginners/thread1215311.html
String::replace ошибка Structure required on left side of . or .* C++
Вот собственно код: int _tmain(int argc, _TCHAR* argv) { // Открываем объект ядра "файл" HANDLE hFile = CreateFile("file.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); // Создаем объект ядра "проекция файла" HANDLE hFileMapping = CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 0, NULL); // Проецируем в адресное пространство процесса объект...
C++ Крестики Нолики. Где-то ошибка
Тихо едет не спеша, крыша шифером шурша. В общем. Надо чтоб было игровое поле 3х3. Изначально заполнено каким то символом. Игрок 1 вводит координаты - строка/столбец ячейки. Игрок 1 вводит символ +/0. Программа проверяет и матюкается если он ввел не свой символ. Рисуем поле. Все ячейки кроме введенных заполенны по умолчанию, какимто символом. Выбраная игроком ячейка заполнена + или 0. ...
C++ По строкам s2 и s3 восстановить строку s1 http://www.cyberforum.ru/cpp-beginners/thread1215260.html
Заданная строка s1. После удаления одной буквы с s1 образуется строку s2. После удаления из s1 другой буквы образуется строка s3. по строкам s2 и s3 восстановить строку s1.
C++ Как расширить длину строки до определённого значения? Подскажите,как расширить длину строки до определённого значения. подробнее

Показать сообщение отдельно
Ramesses
0 / 0 / 0
Регистрация: 02.03.2014
Сообщений: 5
23.06.2014, 20:28     Неправильный вывод. Преобразовать массив: сначала расположить элементы, модуль которых не больше 1
Основное условие: В одномерном массиве, состоящем из n-вещественных элементов. вычислить:
1) номер минимального элемента массива;
2) Сумму элементов массива, расположенных между первым и вторым отрицательными элементами.
Преобразовать массив так, чтобы сначала располагались элементы. которые по модулю не превышающие 1, а потом все остальные.
Все сделал, но есть проблема - уже преобразованый массив выдается правильно, но лишь пока числа не превысили 1, потом оно меняет числа местами.
Пример: массив 11 -0.3 2 5 0.11 0.05 -3 0 -0.11 0.29
Должно быть: -0.3 0.11 0.05 0 -0.11 0.29 11 2 5 -3
А выдает: -0.3 0.11 0.05 0 -0.11 0.29 -3 5 11 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include "stdafx.h"
#include "conio.h"
#include <iostream>
#include "stdio.h"
#include <cmath> 
#include <iomanip>
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL, "Ukrainian");
    cout << "Введiть елементи послiдовностi:\n";
    const int n = 10;
    float array[n];
    for (int i = 0; i<n; i++)
    {
        cin >> array[i];
    }
    float min = array[0];
 
    {int d = 0;
    for (int i = 1; i < n; i++)
    {
        if (array[i] < min)
        {
            min = array[i];
            d = i;
        }
    }
    cout << "Номер мiнiмального елемента: " << d << endl;
 
    }
 
 
    float sum = 0;
    int fne = n;
    for (int i = 0; i<n; i++)
    {
        if (array[i] < 0)
        {
            fne = i;
            break;
        }
    }
    for (int i = fne + 1; i<n; i++)
    {
        if (array[i] < 0)
        {
            break;
        }
        else
        {
            sum += array[i];
        }
    }
    cout << "sum: " << sum << endl;
 
    int j = 0,buf;
    for (int i = 0; i < n; i++)
    {
        if (array[i] > 1){
            j = i;
            while (j<n){
                if (array[j]<=1){
                    buf = array[i];
                    array[i] = array[j];
                    array[j] = buf;
                    break;
                }
                j++;
            }
        }
    }
    cout << "New array :" << endl;
    for (int j = 0; j<n; j++){ cout << array[j]<<"\t" ; }
 
    _getche();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru