mirror of
https://github.com/Kaehvaman/OAIP.git
synced 2025-01-31 09:28:24 +04:00
Finished lab15
This commit is contained in:
parent
5d9d854727
commit
0929cf7ec2
@ -2,8 +2,8 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
||||||
#define MAX_M 6
|
#define MAX_M 10
|
||||||
#define MAX_N 6
|
#define MAX_N 10
|
||||||
|
|
||||||
int m = 3;
|
int m = 3;
|
||||||
int n = 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() {
|
int main() {
|
||||||
SetConsoleCP(1251);
|
SetConsoleCP(1251);
|
||||||
SetConsoleOutputCP(1251);
|
SetConsoleOutputCP(1251);
|
||||||
|
|
||||||
|
int tmp;
|
||||||
|
|
||||||
int n = 0;
|
int n = 0;
|
||||||
do {
|
do {
|
||||||
puts("\n");
|
puts("\n");
|
||||||
@ -77,13 +238,18 @@ int main() {
|
|||||||
puts("1) Заполнение значениями i * 10 + j");
|
puts("1) Заполнение значениями i * 10 + j");
|
||||||
puts("2) Заполнение нулями");
|
puts("2) Заполнение нулями");
|
||||||
puts("3) Заполнение случайными числами от 0 до 9");
|
puts("3) Заполнение случайными числами от 0 до 9");
|
||||||
puts("4) ");
|
puts("4) Íàéòè ìèíèìàëüíûé ýëåìåíò");
|
||||||
puts("5) ");
|
puts("5) Óäàëèòü ñòðîêó");
|
||||||
puts("6) ");
|
puts("6) Äîáàâèòü ïóñòóþ êîëîíêó");
|
||||||
puts("7) ");
|
puts("7) Âñå íå÷åòíûå óâåëè÷èòü â 10 ðàç");
|
||||||
puts("99) ");
|
puts("8) Âñå êðàòíûå 10 óìåíüøèòü â 10 ðàç");
|
||||||
puts("10) ");
|
puts("9) Ââåñòè ìàññèâ ñ êëàâèàòóðû");
|
||||||
puts("11) ");
|
puts("10) Ñîõðàíèòü â ôàéë");
|
||||||
|
puts("11) Çàãðóçèòü èç ôàéëà");
|
||||||
|
puts("12) Âñòàâèòü ïóñòóþ êîëîíêó");
|
||||||
|
puts("13) Ïðîäóáëèðîâàòü çàäàííûé ñòîëáåö ìàññèâà");
|
||||||
|
puts("14) Îáíóëèòü ýëåìåíòû òåõ ñòðîê, â êîòîðûõ âñòðå÷àåòñÿ áîëåå äâóõ íóëåâûõ ýëåìåíòîâ");
|
||||||
|
puts("15) Ïðîäóáëèðîâàòü òå ñòðîêè, â êîòîðûõ âñòðå÷àþòñÿ íóëåâûå ýëåìåíòû");
|
||||||
puts("");
|
puts("");
|
||||||
puts("0) Выйти из программы");
|
puts("0) Выйти из программы");
|
||||||
|
|
||||||
@ -105,7 +271,46 @@ int main() {
|
|||||||
fillRand();
|
fillRand();
|
||||||
break;
|
break;
|
||||||
case 4:
|
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;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
puts("Досвидания :3");
|
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