Вопросы и ответы по программированию.
- Monk
- VIP
- Сообщения: 4713
- Зарегистрирован: 21.11.2009
- Благодарил (а): 418 раз
- Поблагодарили: 1053 раза
- Контактная информация:
Если нули передвинуть в конец, то разве ты не 24053 в 24530 должен преобразовать?
- Rama
- Модератор
- Сообщения: 1143
- Зарегистрирован: 28.03.2008
- Благодарил (а): 389 раз
- Поблагодарили: 240 раз
- Контактная информация:
kinders666
Тогда так, по-моему
[syntax lang="c" lines="n"]
k = 0;
for (i = 0; i < n - k; i++) {
if (A == 0) {
k++;
for (j = i; j < n - k; j++)
A[j] = A[j+1];
A[n-k] = 0;
}
}
[/syntax]
Где k - кол-во нулей, которые ты передвинул.
Тогда так, по-моему
[syntax lang="c" lines="n"]
k = 0;
for (i = 0; i < n - k; i++) {
if (A == 0) {
k++;
for (j = i; j < n - k; j++)
A[j] = A[j+1];
A[n-k] = 0;
}
}
[/syntax]
Где k - кол-во нулей, которые ты передвинул.
- kinders666
- Модератор
- Сообщения: 4163
- Зарегистрирован: 25.10.2006
- Откуда: Москва
- Благодарил (а): 537 раз
- Поблагодарили: 191 раз
Уже сам разобрался, вот как нужно:
Код: Выделить всё
int i;
int j;
int k;
int z = 0;
double B[NMAX];
for (i = 0; i < n; i++)
{
B[i] = 0;
}
for (j = 0; j < n; j++)
{
if (A[j] != 0)
{
B[z] = A[j];
z++;
}
}
for (k = 0; k < n; k++)
{
cout << "A[" << k << "] = ";
cout << B[k] << endl;
}
- Rama
- Модератор
- Сообщения: 1143
- Зарегистрирован: 28.03.2008
- Благодарил (а): 389 раз
- Поблагодарили: 240 раз
- Контактная информация:
Реализация через второй массив не очень удачна, имхо. В последнем цикле вместо k должно быть z? Алсо, заполнить определенный участок памяти одинаковыми символами можно и без цикла, через memset. Приведенный выше кусок кода просто выводит ненулевые элементы массива на экран =] Но раз уже разобрался, то я удаляюсь.
- kinders666
- Модератор
- Сообщения: 4163
- Зарегистрирован: 25.10.2006
- Откуда: Москва
- Благодарил (а): 537 раз
- Поблагодарили: 191 раз
- Rama
- Модератор
- Сообщения: 1143
- Зарегистрирован: 28.03.2008
- Благодарил (а): 389 раз
- Поблагодарили: 240 раз
- Контактная информация:
kinders666
Обычно преподаватели наоборот хвалят за самостоятельные познания. http://www.cplusplus.com/ там вверху есть поиск. Если ввести там memset и перейти по первой ссылке — покажет в какой библиотеке функция, прототип, пример, похожие функции.
Обычно преподаватели наоборот хвалят за самостоятельные познания. http://www.cplusplus.com/ там вверху есть поиск. Если ввести там memset и перейти по первой ссылке — покажет в какой библиотеке функция, прототип, пример, похожие функции.
- kinders666
- Модератор
- Сообщения: 4163
- Зарегистрирован: 25.10.2006
- Откуда: Москва
- Благодарил (а): 537 раз
- Поблагодарили: 191 раз
- NiGHt-LEshiY
- Полковник
- Сообщения: 10258
- Зарегистрирован: 13.06.2008
- Откуда: Россия
- Благодарил (а): 752 раза
- Поблагодарили: 2667 раз
- Контактная информация:
Не рекомендую cplusplus.com, там встречаются неточности и даже неверные описания.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.
Просьба присылать сообщения об ошибках в ЛС.
- nikit-xxx
- Лейтенант
- Сообщения: 208
- Зарегистрирован: 28.11.2007
- Благодарил (а): 44 раза
- Поблагодарили: 5 раз
kinders666,
memset настолько стар, что есть даже в справочнике Шилдта http://cpp.com.ru/shildt_spr_po_c/index.html или http://lord-n.narod.ru/download/books/w ... C/main.htm
memset настолько стар, что есть даже в справочнике Шилдта http://cpp.com.ru/shildt_spr_po_c/index.html или http://lord-n.narod.ru/download/books/w ... C/main.htm
Откуда иксы в моём нике
Использование тэга подсветки синтаксиса
-
- Эксперты no-Steam
- Сообщения: 2600
- Зарегистрирован: 15.02.2007
- Откуда: Москва
- Благодарил (а): 2 раза
- Поблагодарили: 43 раза
- Контактная информация:
А чем memset плох?
Ну или сам напиши аналог
[syntax lang="c" lines="n"]
void memset2( void *pData, byte pattern, size_t size )
{
for( int i = 0; i < size; i++ )
{
pData = pattern;
}
}
[/syntax]
Ну или сам напиши аналог
[syntax lang="c" lines="n"]
void memset2( void *pData, byte pattern, size_t size )
{
for( int i = 0; i < size; i++ )
{
pData = pattern;
}
}
[/syntax]
- nikit-xxx
- Лейтенант
- Сообщения: 208
- Зарегистрирован: 28.11.2007
- Благодарил (а): 44 раза
- Поблагодарили: 5 раз
Помогите пожалуйста исправить уродливый шрифт в текстовом поле с информацией о процессе, это пример 04-ProcessInfo к книге Дж. Рихтера "Рихтер Дж. - Windows. Создание эффективных Win32-приложений с учётом специфики 64-разрядной версии Windows - 2008.pdf", который я подружил с Visual Studio 2005.
http://rghost.ru/43266889
Почему оно не запускается на других чистых операционках (Win XP 32-bit SP3, Win Server 2003 32-bit)? Вроде нет зависимостей CLI/CLR... "Приложение не может быть запущено, т. к. оно некорректно настроено"
Добавлено спустя 1 час 44 минуты 15 секунд:
если кому интересно, с помощью dumpbin.exe /IMPORTS обнаружил зависимость программы от MSVCR80.dll, эту зависимость убрал как написано здесь и теперь всё нормально запускается.
Остаётся вопрос, как поменять сплюснутый шрифт?
http://rghost.ru/43266889
Добавлено спустя 1 час 44 минуты 15 секунд:
если кому интересно, с помощью dumpbin.exe /IMPORTS обнаружил зависимость программы от MSVCR80.dll, эту зависимость убрал как написано здесь и теперь всё нормально запускается.
Остаётся вопрос, как поменять сплюснутый шрифт?
Откуда иксы в моём нике
Использование тэга подсветки синтаксиса
- NiGHt-LEshiY
- Полковник
- Сообщения: 10258
- Зарегистрирован: 13.06.2008
- Откуда: Россия
- Благодарил (а): 752 раза
- Поблагодарили: 2667 раз
- Контактная информация:
nikit-xxx
Программу ты писал же? Значит шрифт -- твоих рук дело :D
Покажи код.
Программу ты писал же? Значит шрифт -- твоих рук дело :D
Покажи код.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.
Просьба присылать сообщения об ошибках в ЛС.
- nikit-xxx
- Лейтенант
- Сообщения: 208
- Зарегистрирован: 28.11.2007
- Благодарил (а): 44 раза
- Поблагодарили: 5 раз
nikit-xxx писал(а):http://rghost.ru/43266889
это пример 04-ProcessInfo к книге Дж. Рихтера "Рихтер Дж. - Windows. Создание эффективных Win32-приложений с учётом специфики 64-разрядной версии Windows - 2008.pdf", который я подружил с Visual Studio 2005.
я не нашёл в коде (в .rc тоже искал, да) где явно указывается шрифт этого текстового поля..
что меня смущает, что шрифт можно менять только для окна диалога, для других элементов вообще нет поля Font
Добавлено спустя 43 минуты 20 секунд:
всё, нашёл ф-ю, ставящую плохой шрифт:
SetWindowFont(GetDlgItem(hwnd, IDC_RESULTS), GetStockFont(ANSI_FIXED_FONT), FALSE); строка ~263 в файле ProcessInfo.cpp
Откуда иксы в моём нике
Использование тэга подсветки синтаксиса
- Monk
- VIP
- Сообщения: 4713
- Зарегистрирован: 21.11.2009
- Благодарил (а): 418 раз
- Поблагодарили: 1053 раза
- Контактная информация:
Можно как-то скомпиленный C# проект проверить на требуемую версию framework?
- kinders666
- Модератор
- Сообщения: 4163
- Зарегистрирован: 25.10.2006
- Откуда: Москва
- Благодарил (а): 537 раз
- Поблагодарили: 191 раз
Нужна помощ по C++; for; string
Есть строка s0, содержащая только цифры от 0 до 9, четное число элементов. Я ее изменяю:
int size = s0.length();
string s1 = "";
for (i = 0; i < size; i = i + 2)
s1 = s1 + s0;
for (i = 1; i < size; i = i + 2)
s1 = s1 + s0;
Таким образом, если у нас была строка 0123456789, то получилась 0246813579
Тупой вопрос: как вернуть строку в первозданное состояние? То есть, допустим, из 0246813579 получить 0123456789?
Есть строка s0, содержащая только цифры от 0 до 9, четное число элементов. Я ее изменяю:
int size = s0.length();
string s1 = "";
for (i = 0; i < size; i = i + 2)
s1 = s1 + s0;
for (i = 1; i < size; i = i + 2)
s1 = s1 + s0;
Таким образом, если у нас была строка 0123456789, то получилась 0246813579
Тупой вопрос: как вернуть строку в первозданное состояние? То есть, допустим, из 0246813579 получить 0123456789?