Напечатать слова, каждое слово перевернуть в обратном порядке букв

// последовательно обрабатываем слова - выделяем/находим

// найти начало

// если не нашли - выход

// запомнить начало слова

// найти конец слова

// запомнить конец слова

// печатать слово в обратном порядке букв

#include "stdafx.h"

#include <iostream>

#include <cmath>

#include <cstring>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

char s[1000];

cin. getline (s, 1000);

int n = strlen (s);

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

{

for (; s[i] == ' '; i++)

;

if (i >= n)

break;

int begin=i;

for (; i < n && s[i]!= ' '; i++)

;

for (int j=i-1; j >= begin; j--)

cout << s[j];

cout << " ";

}

system ("pause");

return 0;

}

 

Транспонировать матрицу

#include "stdafx.h"

#include <iostream>

#include <cmath>

#include <iomanip>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

const int N=100;

int a[N][N];

int n;

cin >> n;

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(3) << a[i][j] << " ";

cout << endl;

}

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

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

swap (a[i][j], a[j][i]);

cout << endl;

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

{

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

cout << setw(3) << a[i][j] << " ";

cout << endl;

}

system("pause");

return 0;

}

 

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

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

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

// напечатаем те символы, у которых счетчик больше 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;

}

 

Дано натуральное число 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;

}

 

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

#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");

}

 

Повернуть матрицу на 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;

}

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: