Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
экзамен прога.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
46.27 Кб
Скачать

3) Дан символьный массив. Про каждый символ, который встречается хотя бы один раз, нужно напечатать сколько раз он встречается

// для каждого символа заведем счетчик - массив счетчиков

// пройдем по тексту один раз и каждый счетчик ++

// напечатаем те символы, у которых счетчик больше 0

#include "stdafx.h"

#include <iostream>

#include <cmath>

#include <cstring>

int kol[256];

char s [1000];

using namespace std;

Int _tmain(int argc, _tchar* argv[])

{

cin.getline (s, 1000);

int n = strlen (s);

cout << s << "len=" << n << endl;

for (int i=0; i<n; i++)

kol [s[i]]++;

for (int i=0; i<256; i++)

if (kol [i]>0)

cout << (char)i << " " << kol[i] << endl;

system("pause");

return 0;

}

4) Дано натуральное число n. Посчитать количество цифр 5 в числах от 1 до n

#include "stdafx.h"

#include <iostream>

#include <cmath>

#include <cstdlib>

using namespace std;

Int _tmain(int argc, _tchar* argv[])

{

int n;

cin >> n;

int kol = 0;

for (int i=5; i<=n; i++)

{

int ii = i;

while ( ii > 0)

{

if (ii % 10 ==5)

kol++;

ii/=10;

}

}

cout << kol << endl;

system("pause");

return 0;

}

5)Даны два длинных целых числа. Сложить их поразрядно (начиная с цифр с конца)

#include "stdafx.h"

#include<iostream>

#include <cmath>

#include <cstring>

using namespace std;

const int N = 1000;

int a[N], b[N], c[N];

void input (int *);

void sum (int [], int [], int []);

void Print (int *);

Int _tmain(int argc, _tchar* argv[])

{

input (a); // Print (a);

input (b); // Print (b);

sum (a, b, c); // c=a+b

Print (c);

return 0;

}

void input (int *a)

{

char s [N];

cin.getline (s, N);

int len = strlen (s);

for (int i = len-1, j = N-1; i >= 0; i--, j--)

a[j] = s[i] - '0';

}

void sum (int a[], int b[], int c[])

{

for (int i=N-1, perenos = 0; i >= 0; i--)

{

c[i] = (a[i] +b[i] + perenos) % 10;

perenos = (a[i] +b[i] + perenos) / 10;

}

}

void Print (int * a)

{

int i=0;

for ( ; i < N-1; i++)

if (a[i] > 0)

break;

for ( ; i < N; i++)

cout << a[i];

cout << endl;

system ("pause");

}

6)Повернуть матрицу на 180 градусов

#include "stdafx.h"

#include <iomanip>

#include <iostream>

#include <ctime>

#include <cstdlib>

#include <cstring>

using namespace std;

Int _tmain(int argc, _tchar* argv[])

{

//заполнение матрицы

const int N=10;

int a[N][N];

srand (time (0));

for (int i=0; i<N; i++)

for (int j=0; j<N; j++)

a[i][j] = rand() % 100;

//печать матрицы

for (int i=0; i<N; i++)

{

for (int j=0; j<N; j++)

cout << setw(4) << a[i][j];

cout << endl;

}

int N2 = N/2;

for (int i=0; i < N2; i++)

for (int j=0; j<N; j++)

swap (a[i][j], a[N-i-1][N-j-1]);

if (N % 2)

for (int i=0; i < N2; i++)

swap (a [N/2 + 1][i], a[N/2 + 1][N-i-1]);

cout << endl << endl;

for (int i=0; i<N; i++)

{

for (int j=0; j<N; j++)

cout << setw(4) << a[i][j];

cout << endl;

}

system ("pause");

return 0;

}

7)Упорядочить специальным образом массив. Сдвинуть все отрицательные элементы влево, нули в центр, положительные элементы вправо, не меняя места

#include "stdafx.h"

#include <iostream>

#include <cmath>

#include <ctime>

#include <cstdlib>

using namespace std;

Int _tmain(int argc, _tchar* argv[])

{

int a [10000], n;

cin >> n;

for (int i=0; i<n; i++)

{

a[i] = rand () % 10-5;

cout << a[i] << " ";

}

cout << endl;

for (int k=0;k<n; k++)

for (int i=0; i<n-1; i++)

if (a[i] > 0 && a[i+1] <= 0 || a[i] == 0 && a[i+1] < 0)

swap (a[i], a[i+1]);

for (int i=0; i<n; i++)

cout << a[i] << " ";

cout << endl;

system ("pause");

return 0;

}