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

Нужен алгоритмом по вставлению числа в массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Физическая модель http://www.cyberforum.ru/cpp-beginners/thread607457.html
Пробовал создать физическую модель нецентрального соударения 2х шаров - не получилось. Помогите решить, учитывая, что у каждого шара есть характеристики: x, y, r, m, speedx, speedy зы: пробовал сложением векторов, получилось..не физически. Только просьба не перенапрявлять по ссылкам. Читал. Много. Не помогло.
C++ Шестнадцатеричная система счисления Возможно ли такое в шестнадцатирично системе... что значение без букв???? Так как остатки не превышали 9! Вот это число которое я переводил 2341(индекс 10) получилось 925(индекс 16) или "0x925".... правильно ли всё??? P.S: Я конешнео не пробывал ещё переводить другие числа в которых дойдёт до остатков 11-15.. но так как я столкнулся с такой не задачей... мне больше не куда обратиться как к... http://www.cyberforum.ru/cpp-beginners/thread607451.html
Проблемы с выделением памяти C++
Здравствуйте. Есть контейнер QList <Node *> В Node свой QList <Node *>. Строю программное дерево разбора выражение. На небольших деревьях работает нормально, но когда дал ему количество узлов, что уровень вложенности должен был достигнуть примерно 17000, вылетело вот здесь malloc.c #ifdef _WIN64 return HeapAlloc(_crtheap, 0, size ? size : 1); #else /* _WIN64 */ if...
C++ Пояснить алгоритм двоичной системы счисления
Увожаемые господа программисты, помогите разобраться вот в чом!?!:) Переводим 123 в двоичную систему счисления: 123(индекс 10) = 0*128 + 1*64 + 1*32 + 1*16 +1*8 + 0*4 + 1*2 + 1*1 =01111011(индекс 2) интересуют такие вопросы: почемы вычисление начинаеться со 128, и умножается на "0", затем идут последующие умножения на "1", за тем умножаеться "4" на "0".... и почему у числа 123 индекс...
C++ Хранения Графа в памяти http://www.cyberforum.ru/cpp-beginners/thread607393.html
Вечер добрый. Есть графы.В них: Точки, рёбра, длины рёбер, координаты точек, точки не имеющие соединения рёбрами, точки в которые или из которых выходит по много рёбер. Так же будет добавление вершин. Вопрос: как правильно хранить графы в памяти? Какие структуры использовать? Что посоветуете?
C++ Программа расчёта траектории движения ЛА Люди добрые помогите плиз написать программу для 26 варианта а то с с++ я очень туго понимаю подробнее

Показать сообщение отдельно
LittleGirl
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 5
19.06.2012, 00:54     Нужен алгоритмом по вставлению числа в массив
-1 получается потому, что цикл для заполнения итогового массива до i<n+1. Внутри цикла вычисляется значение arr[i], то есть на последнем шаге цикла имеем arr[n]. А по этому адресу лежит всякий мусор, в вашем случае там лежала -1. Это значение сравнилось с b=5, мы попали в if и получили arrRezault[n] = arr[n], т.е. последнее значение в итоговом массиве заменили на эту самую -1.
Если цикл сделать до i<n то 5 вставляется хорошо. Но вот если попробовать вставить, например, 15, то мы никогда не зайдем в else и не инициализируем последний элемент массива arrRezault, в итоге опять получим там всё что угодно.

Мой вариант:
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
#include "stdafx.h"
#include "locale.h"
#include "iostream"
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (0,"Russian");
    const int n = 10;
    int arr[n], b;
    //формируем последовательность
    for (int i= 1; i<n+1; i ++) 
        arr[i-1]= i;
 
    //вводим число
    cout <<"Введите число от 1 до "<<n <<" ";
    cin >> b;
    //создаем итоговый массив для последовательности + введенное число
    int arr_rez[n+1]; 
 
    int i, ind=n;
    // Ищем индекс элемента, большего чем b
    for(i=0;i<n;i++)
        if (arr[i]>b) {ind=i; break;}
 
    // копируем всё до ind
    for(i=0;i<ind;i++)
        arr_rez[i]=arr[i];
 
    // вставляем b
    arr_rez[ind]=b;
 
    // копируем оставшееся
    for(i=ind+1;i<n+1;i++)
        arr_rez[i]=arr[i-1];
 
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru