551 lines
9.5 KiB
C++
551 lines
9.5 KiB
C++
//#include <stdio.h>
|
|
//#include <Windows.h>
|
|
//
|
|
//#define NUM_ELEMENTS 10
|
|
//
|
|
//int arr[NUM_ELEMENTS];
|
|
//int n = 0;
|
|
//
|
|
//
|
|
//void printElements();
|
|
//void keyboardInput();
|
|
//void oddsX10();
|
|
//int findMin();
|
|
//int more10();
|
|
//int findLastEven();
|
|
//int findIndexMin();
|
|
//void chetnaminus();
|
|
//int findmenshe4();
|
|
//int variant1();
|
|
//void deletElement(int delIndex);
|
|
//void insertElement(int insIndex, int value);
|
|
//int deletfindMin();
|
|
//void variant_5();
|
|
//int Findnechet();
|
|
//
|
|
//void main() {
|
|
// SetConsoleCP(1251);
|
|
// SetConsoleOutputCP(1251);
|
|
// int item;
|
|
// do {
|
|
// printf("\n");
|
|
// printf("------------------------------\n");
|
|
// printf("Ñîäåðæèìîå ìàññèâà:");
|
|
// printElements();
|
|
// printf("Âûáåðèòå íóæíóþ âàì îïåðàöèþ:\n");
|
|
// printf("1: Ââåñòè ñ êëàâèàòóðû ìàññèâ\n");
|
|
// printf("2: x10 äëÿ âñåõ íå÷åòíûõ ýëåìåíòîâ\n");
|
|
// printf("3: Íàéòè ìèíèìàëüíûé ýëåìåíò\n");
|
|
// printf("4: Ñêîëüêî ýëåìåíòîâ > 10\n");
|
|
// printf("5: Óâåëè÷èâàòü â 2 ðàçà ïîñëåäíèé ÷åòíûé\n");
|
|
// printf("6: Ñêîëüêî ÷åòíûõ ëåâåå ìèíèìàëüíîãî\n");
|
|
// printf("7: Âñå ÷åòíûå ýëåìåíòû ìàññèâà óìíîæèòü íà -1\n");
|
|
// printf("8: Âñå ýëåìåíòû ìàññèâà, èìåþùèå çíà÷åíèÿ < 4, çàìåíèòü íà 4\n");
|
|
// printf("9: Âñå ÷åòíûå ýëåìåíòû ìàññèâà îáíóëèòü\n");
|
|
// printf("11: Óäàëåíèå çàäàííîãî ýëåìåíòà ìàññèâà\n");
|
|
// printf("12: Âñòàâêà íîâîãî ýëåìåíòà â çàäàííîå ìåñòî\n");
|
|
// printf("13: Óäàëåíèå ìèíèìàëüíîãî ýëåìåíòà\n");
|
|
// printf("14: Ïåðåä ìèíèìàëüíûì ýëåìåíòîì âñòàâèòü 0\n");
|
|
// printf("15: Óäàëèòü ïåðâûé èç íå÷åòíûõ ýëåìåíòîâ\n");
|
|
// printf("\n");
|
|
// printf("0: Âûéòè èç ïðîãðàììû\n");
|
|
// printf("Âûáðàííàÿ îïåðàöèÿ >>>>>> ");
|
|
//
|
|
// scanf_s("%d", &item);
|
|
//
|
|
// switch (item) {
|
|
// case 1:
|
|
// keyboardInput();
|
|
// break;
|
|
//
|
|
// case 2:
|
|
// oddsX10();
|
|
// break;
|
|
//
|
|
// case 3:
|
|
// {
|
|
// int min = findMin();
|
|
// printf("min = %d\n", min);
|
|
// }
|
|
// break;
|
|
//
|
|
// case 4:
|
|
// {
|
|
// int i1 = more10();
|
|
// printf(" %d ýëåìåíòîâ > 10\n", i1);
|
|
// }
|
|
// break;
|
|
//
|
|
// case 5:
|
|
// {
|
|
// int index = findLastEven();
|
|
// if (index >= 0) {
|
|
// arr[index] *= 2;
|
|
// }
|
|
// }
|
|
// break;
|
|
//
|
|
// case 6:
|
|
// {
|
|
// int index = findIndexMin();
|
|
// printf("Èíäåêñ ìèíèìàëüíîãî ýëåìåíòà = %d\n", index);
|
|
//
|
|
// int cnt = 0;
|
|
// for (int i = 0; i < index; i++) {
|
|
// if (arr[i] % 2 == 0) {
|
|
// cnt++;
|
|
// }
|
|
// }
|
|
// printf("Ëåâåå ìèíèìàëüíîãî %d ÷åòíûõ ýëåìåíòîâ\n", cnt);
|
|
// }
|
|
// break;
|
|
//
|
|
// case 7:
|
|
// chetnaminus();
|
|
// break;
|
|
//
|
|
// case 8:
|
|
// findmenshe4();
|
|
// break;
|
|
//
|
|
// case 9:
|
|
// variant1();
|
|
// break;
|
|
//
|
|
// case 11:
|
|
// {
|
|
// printf("Èíäåêñ óäàëÿåìîãî ýëåìåíòà = ");
|
|
// int index;
|
|
// scanf_s("%d", &index);
|
|
//
|
|
// deletElement(index);
|
|
// }
|
|
// break;
|
|
//
|
|
// case 12:
|
|
// {
|
|
// printf("Ïåðåä êàêèì ýëåìåíòîì íåóæíî âñòàâèòü íîâûé? Èíäåêñ = ");
|
|
// int index;
|
|
// scanf_s("%d", &index);
|
|
//
|
|
// printf("Çíà÷åíèå, êîòîðîå íóæíî âñòàâèòü = ");
|
|
// int value;
|
|
// scanf_s("%d", &value);
|
|
//
|
|
// insertElement(index, value);
|
|
// }
|
|
// break;
|
|
//
|
|
// case 13: {
|
|
// int min = deletfindMin();
|
|
// deletElement(min);
|
|
// break;
|
|
// }
|
|
// case 14:
|
|
// {
|
|
// int indexMin = findIndexMin();
|
|
// printf("Èíäåêñ ìèíèìàëüíîãî ýëåìåíòà = %d\n", indexMin);
|
|
//
|
|
// insertElement(indexMin, 0);
|
|
// }
|
|
// break;
|
|
//
|
|
// case 15:
|
|
// int nechet = Findnechet();
|
|
//
|
|
// deletElement(nechet);
|
|
// break;
|
|
// }
|
|
// } while (item != 0);
|
|
//}
|
|
//
|
|
//
|
|
//
|
|
//void keyboardInput() {
|
|
// printf("n = ");
|
|
// scanf_s("%d", &n);
|
|
//
|
|
// printf("input %d values: ", n);
|
|
// for (int i = 0; i < n; i++) {
|
|
// scanf_s("%d", &arr[i]);
|
|
// }
|
|
//}
|
|
//
|
|
//void oddsX10() {
|
|
// for (int i = 0; i < n; i++) {
|
|
// if (arr[i] % 2 == 1) {
|
|
// arr[i] *= 10;
|
|
// }
|
|
// }
|
|
//}
|
|
//
|
|
//void printElements() {
|
|
// printf("< ");
|
|
// for (int i = 0; i < n; i++) {
|
|
// printf("%d ", arr[i]);
|
|
// }
|
|
// printf(">\n");
|
|
//}
|
|
//
|
|
//int findMin() {
|
|
// int min = arr[0];
|
|
// for (int i = 0; i < n; i++) {
|
|
// if (arr[i] < min) {
|
|
// min = arr[i];
|
|
// }
|
|
// }
|
|
// return min;
|
|
//}
|
|
//
|
|
//
|
|
//
|
|
//int more10() {
|
|
// int i1 = 0;
|
|
// for (int i = 0; i < n; i++) {
|
|
// if (arr[i] > 10) {
|
|
// i1 += 1;
|
|
// }
|
|
// }
|
|
// return i1;
|
|
//}
|
|
//
|
|
//int findLastEven() {
|
|
// for (int i = n - 1; i < n; i--) {
|
|
// if (arr[i] % 2 == 0) {
|
|
// return i;
|
|
// }
|
|
// }
|
|
// return -1;
|
|
//}
|
|
//
|
|
//int findIndexMin() {
|
|
// int min = arr[0];
|
|
// int indexMin = 0;
|
|
// for (int i = 1; i < n; i++) {
|
|
// if (arr[i] < min) {
|
|
// min = arr[i];
|
|
// indexMin = i;
|
|
// }
|
|
// }
|
|
// return indexMin;
|
|
//}
|
|
//
|
|
//void chetnaminus() {
|
|
// for (int i = 0; i < n; i++) {
|
|
// if (arr[i] % 2 == 0) {
|
|
// arr[i] = arr[i] * (-1);
|
|
// }
|
|
// }
|
|
//}
|
|
//
|
|
//int findmenshe4() {
|
|
// for (int i = 0; i < n; i++) {
|
|
// if (arr[i] < 4) {
|
|
// arr[i] = 4;
|
|
// }
|
|
// }
|
|
// return 4;
|
|
//}
|
|
//
|
|
//int variant1() {
|
|
// for (int i = 0; i < n; i++) {
|
|
// if (arr[i] % 2 == 0) {
|
|
// arr[i] = 0;
|
|
// }
|
|
// }
|
|
// return 0;
|
|
//}
|
|
//
|
|
//void deletElement(int delIndex) {
|
|
// for (int i = delIndex; i < n - 1; i++) {
|
|
// arr[i] = arr[i + 1];
|
|
// }
|
|
// n--;
|
|
//}
|
|
//
|
|
//void insertElement(int insIndex, int value) {
|
|
// for (int i = n; i > insIndex; i--) {
|
|
// arr[i] = arr[i - 1];
|
|
// }
|
|
// n++;
|
|
// arr[insIndex] = value;
|
|
//}
|
|
//
|
|
//int deletfindMin() {
|
|
// int minNum1 = arr[0];
|
|
// int saveNum = 0;
|
|
// for (int i = 0; i < n; i++) {
|
|
// if (arr[i] < minNum1) {
|
|
// minNum1 = arr[i];
|
|
// saveNum = i;
|
|
// }
|
|
// }
|
|
// return saveNum;
|
|
//}
|
|
//
|
|
//
|
|
//
|
|
//int Findnechet() {
|
|
// for (int i = 0; i < n; i++) {
|
|
// if (arr[i] % 2 != 0) {
|
|
// return i;
|
|
// }
|
|
// }
|
|
// return -1;
|
|
//}
|
|
//
|
|
|
|
|
|
|
|
|
|
|
|
#define _CRT_SECURE_NO_WARNINGS
|
|
#include <stdio.h>
|
|
#include <windows.h>
|
|
#include <time.h>
|
|
|
|
#define max_n 10
|
|
#define max_m 10
|
|
|
|
|
|
|
|
|
|
|
|
int arr[max_n][max_m] = {
|
|
{ 1, 5, 3, 4},
|
|
{ 76, 88, 89 },
|
|
{ 9, 8, 3, 8 }
|
|
|
|
};
|
|
|
|
int n = 3;
|
|
int m = 4;
|
|
|
|
void print() {
|
|
printf("!!!! print() !!!!\n");
|
|
for (int i = 0; i < n; i++) {
|
|
for (int j = 0; j < m; j++) {
|
|
printf("%4d", arr[i][j]);
|
|
}
|
|
printf("\n");
|
|
}
|
|
}
|
|
|
|
void fillix10() {
|
|
for (int i = 0; i < n; i++) {
|
|
for (int j = 0; j < m; j++) {
|
|
arr[i][j] = i * 10 + j;
|
|
}
|
|
}
|
|
}
|
|
|
|
void fillzero() {
|
|
for (int i = 0; i < n; i++) {
|
|
for (int j = 0; j < m; j++) {
|
|
arr[i][j] = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
void random() {
|
|
for (int i = 0; i < n; i++) {
|
|
for (int j = 0; j < m; j++) {
|
|
arr[i][j] = rand() % 10;
|
|
}
|
|
}
|
|
}
|
|
|
|
void odd_numbers() {
|
|
for (int i = 0; i < n; i++) {
|
|
for (int j = 0; j < m; j++) {
|
|
if (arr[i][j] % 2 != 0) {
|
|
arr[i][j] *= 10;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
void multiples_10() {
|
|
for (int i = 0; i < n; i++) {
|
|
for (int j = 0; j < m; j++) {
|
|
if (arr[i][j] % 10 == 0) {
|
|
arr[i][j] /= 10;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void enterinf_array() {
|
|
printf("\nÂâåäèòå êîëè÷åñòâî ñòðîê = ");
|
|
scanf_s("%d", &n);
|
|
|
|
printf("\nÂâåäèòå êîëè÷åñòâî ñòîëáöîâ = ");
|
|
scanf_s("%d", &m);
|
|
|
|
for (int i = 0; i < n; i++) {
|
|
printf("Ââåäèòå %d ñòðîêó ìàññèâà ", i + 1);
|
|
for (int j = 0; j < m; j++) {
|
|
scanf_s("%d", &arr[i][j]);
|
|
}
|
|
}
|
|
}
|
|
|
|
// ñîõðàíåíèå ñîñòîÿíèÿ
|
|
void save() {
|
|
// âûõîäíîé ôàéë
|
|
FILE* fout = fopen("c:\\fist\\îàèï\\ôàéë\\arr1.txt", "wt");
|
|
if (fout == NULL) {
|
|
printf("âûõîäíîé ôàéë íå ñîçäàëñÿ");
|
|
return;
|
|
}
|
|
|
|
fprintf(fout, "%d ", n);
|
|
fprintf(fout, "%d\n", m);
|
|
for (int i = 0; i < n; i++) {
|
|
for (int j = 0; j < m; j++) {
|
|
fprintf(fout, "%d ", arr[i][j]);
|
|
}
|
|
fprintf(fout, "\n");
|
|
}
|
|
|
|
fclose(fout);
|
|
}
|
|
|
|
//çàãðóçèòü
|
|
void load() {
|
|
FILE* fin = fopen("c:\\fist\\îàèï\\ôàéë\\arr1.txt", "rt");
|
|
if (fin == NULL) {
|
|
printf("âûõîäíîé ôàéë íå ñîçäàëñÿ");
|
|
return;
|
|
}
|
|
|
|
fscanf(fin, "%d", &n);
|
|
fscanf(fin, "%d", &m);
|
|
|
|
for (int i = 0; i < n; i++) {
|
|
for (int j = 0; j < m; j++) {
|
|
fscanf(fin, "%d", &arr[i][j]);
|
|
}
|
|
}
|
|
fclose(fin);
|
|
}
|
|
|
|
|
|
void deletrow(int delrow) {
|
|
|
|
for (int i = delrow; i < n - 1; i++) {
|
|
for (int j = 0; j < m; j++) {
|
|
arr[i][j] = arr[i + 1][j];
|
|
}
|
|
}
|
|
n--;
|
|
}
|
|
|
|
void duplicatecolumn(int dupcol) {
|
|
for (int i = 0; i < n; i++) {
|
|
for (int j = m; j > dupcol; j--) {
|
|
arr[i][j] = arr[i][j - 1];
|
|
}
|
|
}
|
|
for (int i = 0, j = 0; i < n; i++, j++) {
|
|
if (j = dupcol)
|
|
arr[i][j + 1] = arr[i][j];
|
|
}
|
|
m++;
|
|
}
|
|
|
|
int null_column() {
|
|
int zerocolumns[max_m] = { 0 };
|
|
for (int j = 0; j < m; j++) {
|
|
for (int i = 0; i < n; i++) {
|
|
if (arr[i][j] % 2 == 0) {
|
|
zerocolumns[j] = 1; // ÷¸òíîå
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
for (int j = 0; j < m; j++) {
|
|
if (zerocolumns[j] == 0) { //íå ÷¸òíîå
|
|
for (int i = 0; i < n; i++) {
|
|
arr[i][j] = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
void main() {
|
|
SetConsoleCP(1251);
|
|
SetConsoleOutputCP(1251);
|
|
int item;
|
|
do {
|
|
printf("\n");
|
|
print();
|
|
printf("==============================\n");
|
|
printf("âûáåðèòå íóæíóþ âàì îïåðàöèþ:\n");
|
|
printf("1: çàïîëíèòü çíà÷åíèÿìè i * 10 + j\n");
|
|
printf("2: çàïîëíèòü 0\n");
|
|
printf("3: çàïîëíèòü ñëó÷àéíûìè çíà÷åíèÿìè\n");
|
|
printf("4: âñå íå÷åòíûå ó÷åëè÷èòü â 10 ðàç\n");
|
|
printf("5: âñå êðàòíûå 10 óìåíüøèòü â 10 ðàç\n");
|
|
printf("6: ââîä ìàññèâà\n");
|
|
printf("7: ñîõðàíèòü ìàññèâ â ôàéë\n");
|
|
printf("8: çàãðóçèòü ìàññèâ èç ôàéëà\n");
|
|
printf("9: óäàëèòü çàäàííóþ ñòðîêó èç ìàññèâà\n");
|
|
printf("10: ïðîäóáëèðîâàòü çàäàííûé ñòîëáåö\n");
|
|
printf("11: îáíóëèòü ýëåìåíòû òåõ ñòîëáöîâ, â êîòîðûõ íåò íè îäíîãî ÷åòíîãî ýëåìåíòà\n");
|
|
printf("\n");
|
|
printf("-1: âûéòè èç ïðîãðàììû\n");
|
|
printf("âûáðàííàÿ îïåðàöèÿ >>>>>> ");
|
|
scanf_s("%d", &item);
|
|
|
|
switch (item) {
|
|
case 1:
|
|
fillix10();
|
|
break;
|
|
case 2:
|
|
fillzero();
|
|
break;
|
|
case 3:
|
|
random();
|
|
break;
|
|
case 4:
|
|
odd_numbers();
|
|
break;
|
|
case 5:
|
|
multiples_10();
|
|
break;
|
|
case 6:
|
|
enterinf_array();
|
|
break;
|
|
case 7:
|
|
save();
|
|
break;
|
|
case 8:
|
|
load();
|
|
break;
|
|
case 9:
|
|
{
|
|
int num;
|
|
printf("íîìåð ñòðîêè, êîòîðóþ íóæíî óäàëèòü: ");
|
|
scanf_s("%d", &num);
|
|
deletrow(num);
|
|
break;
|
|
}
|
|
case 10:
|
|
{
|
|
int num;
|
|
printf("ââåäèòå íîìåð ñòîëáöà, êîòîðûé íóæíî ïðîäóáëèðîâàòü = ");
|
|
scanf_s("%d", &num);
|
|
duplicatecolumn(num);
|
|
break;
|
|
}
|
|
case 11:
|
|
null_column();
|
|
break;
|
|
}
|
|
|
|
} while (item != -1);
|
|
} |