При компиляции выдается ошибка [Error] 'randomize' was not declared in this scope - C (СИ)
Формулировка задачи:
Доброго времени суток. Есть код написанный на Си, но при компиляции в DevC++ выдает ошибку
[Error] 'randomize' was not declared in this scope
[Error] 'random' was not declared in this scope
Подскажите как можно исправить
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
long iC, iM;
void printmas(int *m, int n)
{for (int i=0; i<n; i++)
{printf("%4i",m[i]);}
printf("\n");}
void initdown(int *m, int n)
{
for (int i=0; i<n ; i++) {
m[i] = n-i-1;
}
}
void initup(int *m, int n)
{
for (int i=0; i<n ; i++) {
m[i] = i;
}
}
void initrandom(int *m, int n)
{randomize();
for (int i=0; i<n ; i++) {
m[i] = random(500);
}
}
long consum(int *m, int n)
{
long sum=0;
for (int i=0; i<n ; i++)
sum += m[i];
return sum;
}
int kolser(int *m, int n)
{
int kser=1;
for (int i=1; i<n; i++)
if (m[i] < m[i-1]) kser++;
return kser;
}
void sortpr(int *m, int n)
{
iM=0; iC=0;
for (int i=0; i<n-1; i++) {
int min = i;
for (int j=i+1; j<n; j++) {
if (m[j] < m[min]) min = j;
iC++;
}
int tmp;
tmp = m[i]; m[i] = m[min]; m[min] = tmp;
iM += 3;
}
}
void sortpuz(int *m, int n)
{
iM=0; iC=0;
for (int i=1; i<n; i++)
for (int j=n-1; j>=i; j--) {
iC++;
if (m[j-1] > m[j]) {
int tmp;
tmp = m[j-1]; m[j-1] = m[j]; m[j] = tmp;
iM += 3;
}
}
}
void sortsh(int *m, int n)
{
iM=0; iC=0;
int i;
int l=0;
int r=n-1, k=n-1;
while (l < r) {
for (i=r; i > l; i--) {
iC++;
if (m[i-1] > m[i]) {
int tmp;
tmp = m[i-1]; m[i-1] = m[i]; m[i] = tmp;
iM += 3; k = i;
}
}
l = k;
for (i=l; i < r; i++) {
iC++;
if (m[i] > m[i+1]) {
int tmp;
tmp = m[i+1]; m[i+1] = m[i]; m[i] = tmp;
iM += 3; k = i;
}
}
r = k;
}
}
int main(void)
{
int *o, *m;
int n, metod;
fflush(stdin);
printf("‡*¤*©ГўВҐ Г**§¬ВҐГ* ¬*ГЎГЎВЁВў*. N=");
scanf("%i",&n);
printf("\n");
o = (int *)malloc(n*sizeof(int));
m = (int *)malloc(n*sizeof(int));
do {
printf("‡*¤*©ГўВҐ ГЎВЇ®ГЎ®ВЎ ВЁ*¨æ¨*«ВЁ§*樨 ¬*ГЎГЎВЁВў*.\n");
printf("1 - ã¡ë¢*î騩.\n");
printf("2 - ГЎ«ГЈГ§*©*Г«©.\n");
printf("3 - Вў®§Г**ГЎГў*î騩.\n");
printf("0 - ‚ë室 ВЁ§ ВЇГ*®ВЈГ**¬¬Г«.\n");
scanf("%i",&metod);
} while ( metod <0 || metod >3);
printf("\n");
switch ( metod ) {
case 0:
exit(0);
break;
case 1:
initdown(o, n);
break;
case 2:
initrandom(o, n);
break;
case 3:
initup(o, n);
break;
}
printf("Л†ГЎГҐ®¤*Г«© ¬*ГЎГЎВЁВў\n");
printmas(o,n);
printf("Е*®*ГўГ*®«Г¬**ГЇ ГЎГЈ¬¬* ¤® ГЎ®Г*ГўВЁГ*®ВўВЄВЁ = %li\n",consum(o,n));
printf("Е*®«ВЁГ§ВҐГЎГўВў® ГЎВҐГ*ВЁ© ¤® ГЎ®Г*ГўВЁГ*®ВўВЄВЁ = %i\n",kolser(o,n));
printf("\n");
while (1) {
do {
printf("‡*¤*©ГўВҐ ГЎВЇ®ГЎ®ВЎ ГЎ®Г*ГўВЁГ*®ВўВЄВЁ.\n");
printf("1 - ¬ВҐГў®¤ ВЇГ*ГЇ¬®ВЈ® ¢ë¡®Г**.\n");
printf("2 - ¬ВҐГў®¤ ВЇГЈ§Г«Г*ìª*.\n");
printf("3 - ¬ВҐГў®¤ ЛњВҐ©ВЄВҐГ**.\n");
printf("0 - ‚ë室 ВЁ§ ВЇГ*®ВЈГ**¬¬Г«.\n");
scanf("%i",&metod);
} while ( metod <0 || metod >3);
printf("\n");
memcpy(m,o,n*sizeof(int));
switch ( metod ) {
case 0:
exit(0);
break;
case 1:
sortpr(m, n);
break;
case 2:
sortpuz(m, n);
break;
case 3:
sortsh(m, n);
break;
}
printf("ЕЅГўГЎ®Г*ГўВЁГ*®Вў***Г«© ¬*ГЎГЎВЁВў\n");
printmas(m,n);
printf("Е*®*ГўГ*®«Г¬**ГЇ ГЎГЈ¬¬* ВЇ®ГЎ«ВҐ ГЎ®Г*ГўВЁГ*®ВўВЄВЁ = %li\n",consum(m,n));
printf("Е*®«ВЁГ§ВҐГЎГўВў® ГЎВҐГ*ВЁ© ВЇ®ГЎ«ВҐ ГЎ®Г*ГўВЁГ*®ВўВЄВЁ = %i\n",kolser(m,n));
printf("Е*®«ВЁГ§ВҐГЎГўВў® ГЎГ**Вў*ВҐ*ВЁ© = %li ВЁ ВЄ®«ВЁГ§ВҐГЎГўВў® ВЇВҐГ*ВҐГЎГ««®ВЄ = %li\n",iC,iM);
printf("\n");
}
return 0;
}Решение задачи: «При компиляции выдается ошибка [Error] 'randomize' was not declared in this scope»
textual
Листинг программы
m[i] = rand()%500;
Объяснение кода листинга программы
- Переменная
mобъявляется в области видимости. - Для переменной
mвыделяется память в куче. - Значение переменной
mинициализируется случайным числом в диапазоне от 0 до 500. - Результат операции
%(остаток от деления) присваивается переменнойm. - Переменная
iне объявляется и не используется в данном фрагменте кода.