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

Смещение членов массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Запуск от имени администратора DEV C++ http://www.cyberforum.ru/cpp-beginners/thread346156.html
Здравствуйте. Остро встал вопрос :) о том, как сделать, чтобы при открытии программы открывалась стандартное окошко "запуск от имени админа", типа "разрешаете ли вы этой программе вносить изменения на комп", как-то так, непомню. Мне сказали, что это можно сделать в манифесте. Но я работаю в Dev C++ и не знаю, где этот параметр настроить. Помогите, пожалуйста! Заранее благодарю!
C++ Функция find Почему #include <iostream> #include <iterator> #include <string> #include <algorithm> using namespace std; template<typename first, typename second> int find2(first str, second to_find) http://www.cyberforum.ru/cpp-beginners/thread346146.html
C++ VS2008 и C++
Всем привет. Скажите вот я установил Visual Studio 2008 Professional. В нем же сразу находится и C++? Или его необходимо дополнительно устанавливать? И является ли он полноценным если он на русском?
C++ *this
Что значит *this например в этом коде bool operator>(const String &right) const { return right < *this } дейсвие this я понимаю. А *this значит указатель на указатель, имхо?
C++ Использование класса http://www.cyberforum.ru/cpp-beginners/thread346124.html
Доброго времени суток! Подскажите пожалуйста... Я как-то неправильно использую класс: #include <windows.h> class Timer { private:
C++ загрузка и сохранение массива структур помогите найти косяк :( капец второй день не пойму что не так, при сохранении в файл оно сохраняется, а потом при загрузке у меня в функции LoadRegUsers() количество структур больше чем надо и походу сдвиг... как правильно считать и сохранить массив структур??? //сама структура struct TUser{ unsigned int UIN; //уин int id, many, raiting; ... подробнее

Показать сообщение отдельно
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
29.08.2011, 01:46
Цитата Сообщение от MeghaNik Посмотреть сообщение
rangerx, код - это хорошо, но мне нужен алгоритм.
Ну, так что ты не можешь пару строк кода разобрать и составить алгоритм? Например, удаляем чётные
f - first
r - result

Бежим указателем f от начала до конца массива. Если элемент на который указывает f нечётный, то записываем по адресу r значение того на что указывает f, и перемещаем r одну позицию вперёд. И так до конца.
Код
1) 2 5 3 4 1 
   f  
   r

2) 2 5 3 4 1
     f
   r

3) 5 5 3 4 1
       f
     r   

4) 5 3 3 4 1
         f
       r  

5) 5 3 3 4 1
           f
       r   

6) 5 3 1 4 1
             f
         r
Остались нечётные: 5 3 1
теперь от r и до самого конца всё можно заполнить нулями.
Пример(максимально простой, без указателей)
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
#include <stdio.h>
 
#define N 5
 
int main()
{
    int a[N] = { 2, 5, 3, 4, 1 };
 
    int i = 0;
    int r = 0;
 
    // удаляем чётные
    while(i != N)
    {
        if( (a[i] % 2) == 1 )
        {
            a[r] = a[i];
            ++r;
        }
        ++i;
    }
 
    // заполняем нулями освободившиеся позиции
    for(i = r; i < N; ++i)
        a[i] = 0;
 
 
    for(i = 0; i < N; ++i)
        printf("%d ", a[i]);
    putchar('\n');
 
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru