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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 |
#include <iostream> #include <iomanip> #include <conio.h> #include <stdlib.h> #include <cstdlib> using namespace std; class Massiv { int *a, *b, n, min; public: void Sozd(); void Vvod_Sl(); void Form(int n1, int n2); void Form_2(int n3, int n4); void Print(); void Print_2(int number); void Print_3(int rec, int field); }; void main() { Massiv a, b; int number, punkt, rec, field, kol, n1, n2, n, n3, n4; //clrscr(); cout << "1 - sozdanie massiva"; cout << endl; cout << "2 - pechat vseh strok"; cout << endl; cout << "3 - pechat stroki po indeksu"; cout << endl; cout << "4 - sceplenie dvuh massivov"; cout << endl; cout << "5 - sliyanie dvuh massivov"; cout << endl; cout << "6 - pechat konkretnogo elementa konkretnoi stroki"; cout << endl; cout << "7 - vihod"; cout << endl; cout << "Vvedite punkt menu "; cin >> punkt; while (punkt != 7) { switch (punkt) { case 1: {randomize(); //sozdanie massiva a.Vvod_Sl(); cout << endl; a.Print(); cout << endl; cout << "1 - sozdanie massiva"; cout << endl; cout << "2 - pechat vseh strok"; cout << endl; cout << "3 - pechat stroki po indeksu"; cout << endl; cout << "4 - sceplenie dvuh massivov"; cout << endl; cout << "5 - sliyanie dvuh massivov"; cout << endl; cout << "6 - pechat konkretnogo elementa konkretnoi stroki"; cout << endl; cout << "7 - vihod"; cout << endl; cout << "Vvedite punkt menu "; cin >> punkt; } break; case 2: {a.Print(); //pechat massiva cout << endl; cout << "1 - sozdanie massiva"; cout << endl; cout << "2 - pechat vseh strok"; cout << endl; cout << "3 - pechat stroki po indeksu"; cout << endl; cout << "4 - sceplenie dvuh massivov"; cout << endl; cout << "5 - sliyanie dvuh massivov"; cout << endl; cout << "6 - pechat konkretnogo elementa konkretnoi stroki"; cout << endl; cout << "7 - vihod"; cout << endl; cout << "Vvedite punkt menu "; cin >> punkt; } break; case 3: { //pechat stroki po indeksu cout << "Vvedite nomer massiva (numeracia s 0!): "; cin >> number; cout << endl; a.Print_2(number); cout << "1 - sozdanie massiva"; cout << endl; cout << "2 - pechat vseh strok"; cout << endl; cout << "3 - pechat stroki po indeksu"; cout << endl; cout << "4 - sceplenie dvuh massivov"; cout << endl; cout << "5 - sliyanie dvuh massivov"; cout << endl; cout << "6 - pechat konkretnogo elementa konkretnoi stroki"; cout << endl; cout << "7 - vihod"; cout << endl; cout << "Vvedite punkt menu "; cin >> punkt; } break; case 4: { //sceplenie dvuh massivov cout << "Vvrdite nomer 1-go massiva(numeracia s 0!): "; cin >> n1; cout << endl; cout << "Vvedite nomer 2-go massiva(numeracia s 0!): "; cin >> n2; cout << endl; a.Form(n1, n2); cout << endl; cout << "1 - sozdanie massiva"; cout << endl; cout << "2 - pechat vseh strok"; cout << endl; cout << "3 - pechat stroki po indeksu"; cout << endl; cout << "4 - sceplenie dvuh massivov"; cout << endl; cout << "5 - sliyanie dvuh massivov"; cout << endl; cout << "6 - pechat konkretnogo elementa konkretnoi stroki"; cout << endl; cout << "7 - vihod"; cout << endl; cout << "Vvedite punkt menu "; cin >> punkt; } break; case 5: { //sliyanie dvuh massivov cout << "Vvrdite nomer 1-go massiva(numeracia s 0!): "; cin >> n3; cout << endl; cout << "Vvedite nomer 2-go massiva(numeracia s 0!): "; cin >> n4; cout << endl; a.Form_2(n3, n4); cout << endl; cout << "1 - sozdanie massiva"; cout << endl; cout << "2 - pechat vseh strok"; cout << endl; cout << "3 - pechat stroki po indeksu"; cout << endl; cout << "4 - sceplenie dvuh massivov"; cout << endl; cout << "5 - sliyanie dvuh massivov"; cout << endl; cout << "6 - pechat konkretnogo elementa konkretnoi stroki"; cout << endl; cout << "7 - vihod"; cout << endl; cout << "Vvedite punkt menu "; cin >> punkt; } break; case 6: { //pechat konkretnogo elementa konkretnoi stroki cout << "Vvedite nomer stroki massiva(numeraciya s 0!): "; cin >> rec; cout << endl; cout << "Vvedite nomer stolbca: "; cin >> field; cout << endl; a.Print_3(rec, field); cout << "1 - sozdanie massiva"; cout << endl; cout << "2 - pechat vseh strok"; cout << endl; cout << "3 - pechat stroki po indeksu"; cout << endl; cout << "4 - sceplenie dvuh massivov"; cout << endl; cout << "5 - sliyanie dvuh massivov"; cout << endl; cout << "6 - pechat konkretnogo elementa konkretnoi stroki"; cout << endl; cout << "7 - vihod"; cout << endl; cout << "Vvedite punkt menu "; cin >> punkt; } break; case 7: break; system("pause"); } } } void Massiv::Sozd() { int m; cout << "kolvo strok?"; cin >> n; int min = 0; for (int i = 0; i<n; i++) { cout << "kolvo elementov v " << i + 1 << " stroke?"; cin >> m; *(b + i) = m; if (min<m) min = m; } a = (int*)malloc(sizeof(int)*n*min); } void Massiv::Vvod_Sl() { Sozd(); for (int i = 0; i<n; i++) for (int j = 0; j<*(b + i); j++) { *(a + i + j) = -20 + random(41); } } void Massiv::Print() { for (int i = 0; i<n; i++) { for (int j = 0; j<*(b + i); j++) { cout << setw(6) << *(a + i + j); } cout << endl; } } void Massiv::Print_2(int number) { for (int i = 0; i<n; i++) { for (int j = 0; j<*(b + i); j++) { if (i == number) cout << setw(6) << *(a + i + j); } cout << endl; } } void Massiv::Print_3(int rec, int field) { for (int i = 0; i<n; i++) { for (int j = 0; j<*(b + i); j++) { if ((i == rec) && (j == field)) cout << "Danii element= " << setw(6) << *(a + i + j); else "Massiv s takimi dannimi ne naiden!"; } cout << endl; } } void Massiv::Form(int n1, int n2) { int m1, m2, k, j, l, p; int c[20]; //zapominaem kolvo elementov v strokah m1 = *(b + n1); m2 = *(b + n2); // *(b+n1)=m1+m2; int m3 = m1 + m2; k = 0; for (l = 0; l<m3; l++) if (l<m1) { c[l] = *(a + n1 + l); cout << setw(6) << c[l]; } else if ((l >= m1) && (l<m3)) { c[l] = *(a + n2 + k); cout << setw(6) << c[l]; k++; } } void Massiv::Form_2(int n3, int n4) { int m1, m2, k, j, l, p, l1; int c[20], f[20]; //zapominaem kolvo elementov v strokah m1 = *(b + n3); m2 = *(b + n4); int m3 = m1 + m2; k = 0; for (l = 0; l<m3; l++) { if (l<m1) { c[l] = *(a + n3 + l); } else if ((l >= m1) && (l<m3)) { c[l] = *(a + n4 + k); k++; } } l1 = 0; f[l1] = c[l1]; cout << setw(6) << f[l1]; //sliyanie for (p = 1; p<m3; p++) if (f[l1] != c[p]) { l++; f[l1] = c[p]; cout << setw(6) << f[l1]; } } |
I have the following code:
#include <cstdlib>
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int a,n,count;
count=0; randomize();
a=1+random(100);
cout<<"Enter A No. Between 1 to 100";
do
{
cin>>n;
count++;
if(n>a)
cout<<"Enter a lower no.";
else if(n<a)
cout<<"Enter a higher no.";
}while(n!=a);
cout<<count;
system("PAUSE");
return EXIT_SUCCESS;
}
The errors are:
- E:c++main.cpp In function `int main()’:
- 10 E:c++main.cpp `randomize’ undeclared (first use this function)
- (Each undeclared identifier is reported only once for each function it appears in.)
- 11 E:c++main.cpp `random’ undeclared (first use this function)
Can anyone help me understand why these errors are occurring?
asked Aug 24, 2012 at 17:39
8
randomize()
is not a standard C++ function, you will have to use srand(something)
to seed a random number generator, where something
will ussually be current time (time(0)
).
Also, random()
is not a standard function, you will have to use rand()
So, something like this (cleaned up a little):
#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
srand(time(0));
int n, count = 0;
int a = 1 + (rand() % 100);
cout << "Enter A No. Between 1 to 100";
do
{
cin >> n;
count++;
if (n>a)
cout << "Enter a lower no.";
else if (n<a)
cout << "Enter a higher no.";
} while(n!=a);
cout << count;
system("PAUSE");
return EXIT_SUCCESS;
}
answered Aug 24, 2012 at 17:41
2
You’re using a function (here: count=0; randomize();
) named «randomize» — the compiler doesn’t know where to find this function, as it’s not defined in your code, nor in any header you’re including.
I suspect you wanted srand()
and rand()
.
For example — you can rewrite your existing code like the following. To use this code — you’ll need to also #include <time.h>
in your includes:
int main()
{
int a,n,count;
count=0;
srand(time(NULL)); // use instead of "randomize"
a = 1 + (rand() % 100);
// ... Rest of your code
answered Aug 24, 2012 at 17:40
Reed CopseyReed Copsey
552k78 gold badges1153 silver badges1373 bronze badges
3
The methods you’re attempting to call are called srand
and rand
.
randomize
and random
are not part of the language.
answered Aug 24, 2012 at 17:40
Luchian GrigoreLuchian Grigore
252k64 gold badges457 silver badges621 bronze badges
3
If you have a C++11 compiler that includes <random>
(if you don’t, you can use boost::random
from Boost library), you can use this class for better pseudo-random numbers:
#include <ctime>
#include <random>
class rng
{
private:
std::mt19937 rng_engine;
static rng& instance()
{
static rng instance_;
return instance_;
}
rng() {
rng_engine.seed(
static_cast<unsigned long>(time(nullptr))
);
};
rng(rng const&);
void operator=(rng const&);
public:
static long random(long low, long high)
{
return std::uniform_int_distribution<long>
(low, high)(instance().rng_engine);
}
};
Then you use this to get random numbers in a [a,b]
interval:
long a = rng::random(a, b);
You don’t need to seed it manually as it will be seeded on first invocation.
answered Aug 24, 2012 at 17:59
1
Я и мой друг пытаемся сделать игру «Палач», используя C ++ для нашего школьного проекта. Но при компиляции сообщения показывают, что стандартные функции randomize () и random не были объявлены в этой области. Что не так в коде?
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
using namespace std;
const int MAXLENGTH=80;
const int MAX_TRIES=5;
const int MAXROW=7;
int letterFill (char guess, char secretword[], char guessword[]) {
int matches = 0;
for (int i = 0; secretword[i]!=''; i++) {
if (guess == guessword[i])
return 0;
if (guess == secretword[i]) {
guessword[i] = guess;
matches++;
}
}
return matches;
}
void initUnknown (char word[], char unknown[]) {
int i, length = strlen(word);
for (i = 0; i < length; i++)
unknown[i]='*';
unknown[i]='';
}
int main () {
char unknown [MAXLENGTH];
char letter;
int wrong_guesses=0;
char word[MAXLENGTH];
char words[][MAXLENGTH] = { "batman begins", "superman returns", "2012",
"tarzan", "goal", "300", "space jam", "transformers", "megamind",
"spiderman" };
randomize();
int n=random(10);
strcpy(word,words[n]);
initUnknown(word, unknown);
cout << "nnWelcome to hangman...Guess a Movie Name";
cout << "nnEach letter is represented by a star.";
cout << "nnYou have to type only one letter in one try";
cout << "nnYou have " << MAX_TRIES << " tries to try and guess the word.";
cout << "n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";
while (wrong_guesses < MAX_TRIES) {
cout << "nn" << unknown;
cout << "nnGuess a letter: ";
cin >> letter;
if (!letterFill(letter, word, unknown)) {
cout << endl << "Whoops! That letter isn't in there!" << endl;
wrong_guesses++;
} else
cout << endl << "You found a letter! Isn't that exciting!" << endl;
cout << "You have " << MAX_TRIES - wrong_guesses;
cout << " guesses left." << endl;
if (!strcmp(word, unknown)) {
cout << word << endl;
cout << "Yeah! You got it!";
break;
}
}
if(wrong_guesses == MAX_TRIES) {
cout << "nSorry, you lose...you've been hanged." << endl;
cout << "The word was : " << word << endl;
}
cin.get();
}
-3
Решение
Другие решения
Форум программистов Vingrad
Модераторы: Poseidon
|
Поиск: |
|
[C++] Почему не срабатывает randomize, что нужно подключить |
Опции темы |
asdf999 |
|
||
Новичок Профиль Репутация: нет
|
Подскажите пожалуйста почему у меня не работает в visual studio 2006 randomize, всегда выдает |
||
|
|||
kali |
|
||
Шустрый Профиль
Репутация: 18
|
неподключен заголовочный файл в котором описана функция ——————— Работая над решением задачи, всегда полезно знать ответ. |
||
|
|||
Xenon |
|
||
Эксперт Профиль Репутация: 19
|
Это что за функция такая ? ———————
|
||
|
|||
Alexeis |
|
||
Амеба Профиль
Репутация: 23
|
Да это из VCL только пишеться он с большой буквы, вот так Randomize(); ——————— Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||
|
|||
asdf999 |
|
||||||
Новичок Профиль Репутация: нет
|
все равно не воспринимает
пробовал заменить randomize() на rand—нормально, без ошибок, но вот как
?? |
||||||
|
|||||||
Alexeis |
|
||||
Амеба Профиль
Репутация: 23
|
visual studio 2006 != Borland Developer Studio потому и не работает.
Аналог randomize() это srand(). ——————— Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
Dov |
|
||||
аСинизатор Профиль
Репутация: 50
|
Так:
Думаю, что для твоих задач тебе этого вполне хватит. ——————— Тут вечности запах томительный, |
||||
|
|||||
Xenon |
|
||
Эксперт Профиль Репутация: 19
|
time.h только не забудь подключить ———————
|
||
|
|||
asdf999 |
|
||
Новичок Профиль Репутация: нет
|
понятно, спасибо всем! |
||
|
|||
|
Правила форума «Центр помощи» | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
0 Пользователей: |
« Предыдущая тема | Центр помощи | Следующая тема » |
@MiiNiPaa
В С++ функций randomize() и random() нет. Скорее всего, в книге используется компилятор Борланда, который устарел ещё в прошлом тысячелетии, любит использовать библиотеки и API Паскаля, и не следует стандарту.
Ещё есть функция random() в стандарте POSIX, который используется главным образом на Unix-подобных системах
Ответ написан
более трёх лет назад
Комментировать
Комментировать