HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 12.09.2007, 18:25
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
С нами: 10531106

Репутация: 1338


По умолчанию

_Great_ Молодец, как всегда, показал высоты

Цитата:
srand((unsigned)time(&t));
printf("5 случайных чисел от 0 до 99 \n\n");
for (i=0; i < 5; i++) printf("%d\n", 0 + rand() % 100);
Вся проблема в том, что при каждом запуске программа выдает одну и туже последовательность случайных чисел.
 
Ответить с цитированием

  #2  
Старый 12.09.2007, 19:20
Ky3bMu4
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
С нами: 10140806

Репутация: 932


По умолчанию

Код:
#include "time.h"
srand(time(NULL)); //создаём генератор
ИМХО: ранд\сранд - дерьмо. Тока добавляет размер к файлу + нелюбит /ENTRY:WinMain , я делаю так:
Код:
int rand = (GetTickCount())%1000 //получили рандомное 3-х значное число

Последний раз редактировалось Ky3bMu4; 12.09.2007 в 19:23..
 
Ответить с цитированием

  #3  
Старый 12.09.2007, 20:00
Ni0x
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
С нами: 10370602

Репутация: 472
По умолчанию

Цитата:
ИМХО: ранд\сранд - дерьмо. Тока добавляет размер к файлу + нелюбит /ENTRY:WinMain
Ты вообще имеешь понятие о том, что делает ENTRY:WinMain ? rand/srand и не должны работать так, ведь это CRT. Вот неплохой пример:
Код:
//         -----------[ random stuff ]-----------
//                           (c) drmist\STNC 2006

#include "windows.h"
#include <stdio.h>
unsigned long rs_randseed;
void _srand();
unsigned long _rand();

void _srand()
{
  rs_randseed = GetTickCount();
}

unsigned long _rand()
{
  rs_randseed++;
  return (rs_randseed*0xF02CE551) + 0x7FF2742B;
}
int main()
{
int a;
_srand();
a=_rand();
char *pa;
printf("This: ",itoa(a,pa,10));
return 0;    
}

//         ^^^                                ^^^
//         -----------[ random stuff ]-----------
 
Ответить с цитированием

  #4  
Старый 12.09.2007, 21:14
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
С нами: 10721066

Репутация: 4360


По умолчанию

Ni0x, а память выделять для pa, видимо, уже не принято?

Пример, очевидно, стоит переписать:

Код:
int main()
{
  int a;
  char pa[10];

  _srand();
  a=_rand() % 1000;

  printf("This: %s\n",itoa(a,pa,10));
  return 0;    
}

Последний раз редактировалось _Great_; 12.09.2007 в 21:17..
 
Ответить с цитированием

  #5  
Старый 12.09.2007, 21:15
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
С нами: 10721066

Репутация: 4360


По умолчанию

Ky3bMu4
Цитата:
ИМХО: ранд\сранд - дерьмо. Тока добавляет размер к файлу + нелюбит /ENTRY:WinMain , я делаю так:
Чтобы делать такие смелые заявления, нужно сначала разобраться, что такое C Run-Time Library (CRT)
 
Ответить с цитированием

  #6  
Старый 12.09.2007, 21:25
Piflit
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
С нами: 10393869

Репутация: 2032


По умолчанию

10x 2 Ni0x, который подсказал правильный вариант, но потом куда-то ушел...
Цитата:
char lpStr[10];
GetDlgItemText(IDC_EDIT1,lpStr, sizeof(lpStr));
MessageBox(&lpStr[1], 0, 0);
но теперь выводятся все символы, начиная с lpStr[1], а не просто второй символ эдита. нужно выводить посимвольно... какие есть идеи?
 
Ответить с цитированием

  #7  
Старый 12.09.2007, 21:25
Ni0x
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
С нами: 10370602

Репутация: 472
По умолчанию

_Great_ , пример не мой, копирайты стоят, просто показан принцип генерации чисел, кому действительно надо - исправит.
 
Ответить с цитированием

  #8  
Старый 12.09.2007, 21:53
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
С нами: 10531106

Репутация: 1338


По умолчанию

Piflit Попробуй так:
Цитата:
char lpStr[10];
char cTmp;
GetDlgItemText(IDC_EDIT1,lpStr, sizeof(lpStr));
for(int i=0; i<sizeof(lpStr); i++)
{
cTmp = lpStr(i) ;
MessageBox(0,&cTmp, 0, 0x40);
}
//Ni0x, _Great_ , Ky3bMu4 Спс за примеры и помощь. Пошел тестить псевдо случайность

Последний раз редактировалось GlOFF; 12.09.2007 в 21:55..
 
Ответить с цитированием

  #9  
Старый 16.09.2007, 15:44
Piflit
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
С нами: 10393869

Репутация: 2032


По умолчанию

как перевести тип из char * в unsigned char?
 
Ответить с цитированием

  #10  
Старый 16.09.2007, 15:53
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
С нами: 9999746

Репутация: 1318


По умолчанию

Указатель ты можешь привести к другому типу, но он всегда останется указателем, а просто к типу unsigned char ты его никогда не приведёшь... Если ты имел в виду первый случай, то сделай так

Цитата:
char *char_ptr;

(unsigned char*)char_ptr; // Приведение типа указателя
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.