mirror of
https://github.com/Kaehvaman/OAIP.git
synced 2025-01-18 16:49:11 +04:00
Finished lab15
This commit is contained in:
parent
5d9d854727
commit
0929cf7ec2
@ -2,8 +2,8 @@
|
||||
#include <stdlib.h>
|
||||
#include <Windows.h>
|
||||
|
||||
#define MAX_M 6
|
||||
#define MAX_N 6
|
||||
#define MAX_M 10
|
||||
#define MAX_N 10
|
||||
|
||||
int m = 3;
|
||||
int n = 3;
|
||||
@ -63,11 +63,172 @@ void findMin() {
|
||||
|
||||
}
|
||||
|
||||
void deleteRow(int row) {
|
||||
for (int i = row; i < m - 1; i++) {
|
||||
for (int j = 0; j < n; j++) {
|
||||
arr[i][j] = arr[i + 1][j];
|
||||
}
|
||||
}
|
||||
m--;
|
||||
}
|
||||
|
||||
void addColumn() {
|
||||
if (n + 1 <= MAX_N) {
|
||||
for (int i = 0; i < m; i++) {
|
||||
arr[i][n] = 0;
|
||||
}
|
||||
n++;
|
||||
}
|
||||
else {
|
||||
printf("Äîñòèãíóò ìàêñèìóì êîëîíîê!\n");
|
||||
}
|
||||
}
|
||||
|
||||
void insertColumn(int column) {
|
||||
if (n + 1 <= MAX_N) {
|
||||
for (int i = 0; i < m; i++) {
|
||||
for (int j = n; j > column; j--) {
|
||||
arr[i][j] = arr[i][j - 1];
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < m; i++) {
|
||||
arr[i][column] = 0;
|
||||
}
|
||||
n++;
|
||||
}
|
||||
else {
|
||||
printf("Äîñòèãíóò ìàêñèìóì êîëîíîê!\n");
|
||||
}
|
||||
}
|
||||
|
||||
void insertRow(int row) {
|
||||
if (m + 1 <= MAX_M) {
|
||||
for (int i = m; i > row; i--) {
|
||||
for (int j = 0; j < n; j++) {
|
||||
arr[i][j] = arr[i - 1][j];
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < n; i++) {
|
||||
arr[row][i] = 0;
|
||||
}
|
||||
m++;
|
||||
}
|
||||
else {
|
||||
printf("Äîñòèãíóò ìàêñèìóì ñòðîê!\n");
|
||||
}
|
||||
}
|
||||
|
||||
void odd10x() {
|
||||
for (int i = 0; i < m; i++) {
|
||||
for (int j = 0; j < n; j++) {
|
||||
if (arr[i][j] % 2 != 0) arr[i][j] *= 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void crat10() {
|
||||
for (int i = 0; i < m; i++) {
|
||||
for (int j = 0; j < n; j++) {
|
||||
if (arr[i][j] % 10 == 0) arr[i][j] /= 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void inputArr() {
|
||||
for (int i = 0; i < m; i++) {
|
||||
for (int j = 0; j < n; j++) {
|
||||
printf("a%d%d = ", i, j);
|
||||
scanf_s("%d", &arr[i][j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void save() {
|
||||
FILE* fout = fopen("savefile.txt", "w");
|
||||
if (fout == NULL) {
|
||||
puts("Íåâîçìîæíî îòêðûòü ôàéë");
|
||||
return;
|
||||
}
|
||||
|
||||
fprintf(fout, "%d %d\n", m, n);
|
||||
for (int i = 0; i < m; i++) {
|
||||
for (int j = 0; j < n; j++) {
|
||||
fprintf(fout, "%2d ", arr[i][j]);
|
||||
}
|
||||
fprintf(fout, "\n");
|
||||
}
|
||||
|
||||
fclose(fout);
|
||||
}
|
||||
|
||||
void load() {
|
||||
FILE* fin = fopen("savefile.txt", "r");
|
||||
if (fin == NULL) {
|
||||
puts("Íåâîçìîæíî îòêðûòü ôàéë");
|
||||
return;
|
||||
}
|
||||
|
||||
fscanf_s(fin, "%d%d", &m, &n);
|
||||
if (m > MAX_M || n > MAX_N) {
|
||||
printf("Ñëèøêîì áîëüøîé ìàññèâ â ôàéëå!");
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < m; i++) {
|
||||
for (int j = 0; j < n; j++) {
|
||||
fscanf_s(fin, "%d", &arr[i][j]);
|
||||
}
|
||||
}
|
||||
|
||||
fclose(fin);
|
||||
}
|
||||
|
||||
void duplicateColumn(int column) {
|
||||
insertColumn(column);
|
||||
for (int i = 0; i < m; i++) {
|
||||
arr[i][column] = arr[i][column + 1];
|
||||
}
|
||||
}
|
||||
|
||||
int count(int num, int arr[], int len) {
|
||||
int count = 0;
|
||||
for (int i = 0; i < len; i++) {
|
||||
if (arr[i] == num) count += 1;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
void row0() {
|
||||
for (int i = 0; i < m; i++) {
|
||||
if (count(0, arr[i], n) > 2) {
|
||||
for (int j = 0; j < n; j++) {
|
||||
arr[i][j] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void duplicateRow(int row) {
|
||||
insertRow(row);
|
||||
for (int j = 0; j < n; j++) {
|
||||
arr[row][j] = arr[row + 1][j];
|
||||
}
|
||||
}
|
||||
|
||||
void dupRow0() {
|
||||
for (int i = 0; i < m; i++) {
|
||||
if (count(0, arr[i], n) > 0) {
|
||||
duplicateRow(i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
SetConsoleCP(1251);
|
||||
SetConsoleOutputCP(1251);
|
||||
|
||||
int tmp;
|
||||
|
||||
int n = 0;
|
||||
do {
|
||||
puts("\n");
|
||||
@ -77,13 +238,18 @@ int main() {
|
||||
puts("1) Заполнение значениями i * 10 + j");
|
||||
puts("2) Заполнение нулями");
|
||||
puts("3) Заполнение случайными числами от 0 до 9");
|
||||
puts("4) ");
|
||||
puts("5) ");
|
||||
puts("6) ");
|
||||
puts("7) ");
|
||||
puts("99) ");
|
||||
puts("10) ");
|
||||
puts("11) ");
|
||||
puts("4) Íàéòè ìèíèìàëüíûé ýëåìåíò");
|
||||
puts("5) Óäàëèòü ñòðîêó");
|
||||
puts("6) Äîáàâèòü ïóñòóþ êîëîíêó");
|
||||
puts("7) Âñå íå÷åòíûå óâåëè÷èòü â 10 ðàç");
|
||||
puts("8) Âñå êðàòíûå 10 óìåíüøèòü â 10 ðàç");
|
||||
puts("9) Ââåñòè ìàññèâ ñ êëàâèàòóðû");
|
||||
puts("10) Ñîõðàíèòü â ôàéë");
|
||||
puts("11) Çàãðóçèòü èç ôàéëà");
|
||||
puts("12) Âñòàâèòü ïóñòóþ êîëîíêó");
|
||||
puts("13) Ïðîäóáëèðîâàòü çàäàííûé ñòîëáåö ìàññèâà");
|
||||
puts("14) Îáíóëèòü ýëåìåíòû òåõ ñòðîê, â êîòîðûõ âñòðå÷àåòñÿ áîëåå äâóõ íóëåâûõ ýëåìåíòîâ");
|
||||
puts("15) Ïðîäóáëèðîâàòü òå ñòðîêè, â êîòîðûõ âñòðå÷àþòñÿ íóëåâûå ýëåìåíòû");
|
||||
puts("");
|
||||
puts("0) Выйти из программы");
|
||||
|
||||
@ -105,7 +271,46 @@ int main() {
|
||||
fillRand();
|
||||
break;
|
||||
case 4:
|
||||
|
||||
findMin();
|
||||
break;
|
||||
case 5:
|
||||
printf("Êàêóþ ñòðîêó óäàëèòü: ");
|
||||
scanf_s("%d", &tmp);
|
||||
deleteRow(tmp);
|
||||
break;
|
||||
case 6:
|
||||
addColumn();
|
||||
break;
|
||||
case 7:
|
||||
odd10x();
|
||||
break;
|
||||
case 8:
|
||||
crat10();
|
||||
break;
|
||||
case 9:
|
||||
inputArr();
|
||||
break;
|
||||
case 10:
|
||||
save();
|
||||
break;
|
||||
case 11:
|
||||
load();
|
||||
break;
|
||||
case 12:
|
||||
printf("Íà êàêîì èíäåêñå âñòàâèòü êîëîíêó: ");
|
||||
scanf_s("%d", &tmp);
|
||||
insertColumn(tmp);
|
||||
break;
|
||||
case 13:
|
||||
printf("Íà êàêîì èíäåêñå îäóáëèðîâàòü ñòîëáåö: ");
|
||||
scanf_s("%d", &tmp);
|
||||
duplicateColumn(tmp);
|
||||
break;
|
||||
case 14:
|
||||
row0();
|
||||
break;
|
||||
case 15:
|
||||
dupRow0();
|
||||
break;
|
||||
case 0:
|
||||
puts("Досвидания :3");
|
||||
|
4
lab15/lab15/savefile.txt
Normal file
4
lab15/lab15/savefile.txt
Normal file
@ -0,0 +1,4 @@
|
||||
3 6
|
||||
1 1 2 2 3 3
|
||||
4 4 5 5 6 6
|
||||
7 7 8 8 9 9
|
Loading…
Reference in New Issue
Block a user