| Код | #include <stdio.h> #include <stdlib.h> #include <time.h> #include <stdbool.h>
//----------------------------------------------// int** Create(int*** arr, size_t size) { *arr = malloc(sizeof(int*) * size);
size_t i; for (i = 0; i < size; ++i) { (*arr)[i] = malloc(sizeof(int) * size); }
return *arr; } //----------------------------------------------// void Free(int*** arr, size_t size) { size_t i;
for (i =0; i < size; ++i) { free((*arr)[i]); } free(*arr);
*arr = NULL; } //----------------------------------------------// int** Random(int** arr, size_t size) { srand(time(NULL));
size_t i, j; for (i = 0; i < size; ++i) { for (j = 0; j < size; ++j) { arr[i][j] = rand() % 100; } }
return arr; } //----------------------------------------------// void PrintLine(int* arr, size_t size) { size_t i;
for (i = 0; i < size; ++i) { printf("%3d", arr[i]); }
printf("\n"); } //----------------------------------------------// void Print(int** arr, size_t size) { size_t i; for (i = 0; i < size; ++i) { PrintLine(arr[i], size); } } //----------------------------------------------// bool IsUniqueLine(int* arr, size_t size) { bool isUnique = true;
size_t i, j; for (i = 0; i < size-1 && isUnique; ++i) { for (j = i+1; j < size && isUnique; ++j) { isUnique = (arr[i] != arr[j]); } }
return isUnique; } //----------------------------------------------// bool PrintNotUnique(int** arr, size_t size) { bool isUnique = true;
size_t i; for (i = 0; i < size; ++i) { if (!IsUniqueLine(arr[i], size)) { printf("%2d) ", i); PrintLine(arr[i], size); isUnique = false; } }
return isUnique; } //----------------------------------------------//
int main() { size_t size = 0; printf("size: "); scanf("%u", &size);
int** arr = NULL;
Create(&arr, size); Random(arr, size);
Print(arr, size); printf("\n");
PrintNotUnique(arr, size);
Free(&arr, size);
return 0; }
|
http://s1.ipicture.ru/ |