При компиляции выдается ошибка [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
не объявляется и не используется в данном фрагменте кода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д