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