Задана символьная матрица, определить количество различных элементов матрицы (повторяющиеся элементы считать один раз)

Условие задачиЗадана символьная матрица размером NхM. Определить количество различных элементов матрицы (т.е. повторяющиеся элементы считать один раз).

Листинг (исходник) программы:


	#include <iostream>
	#include <locale>
	#include <stdlib.h>
	#include <conio.h>
	using namespace std;
	
	
	int** Create_array(const int n,const int m);
	void Delete_array(const int n,int** Arr);
	int* Create_number_array(const int n,const int m,int** Arr);
	int Count_different_number(const int n, const int m, int* Array);
	
	
	int main()
	{
	    setlocale(LC_ALL,"Russian");
	    int n(1),m(1),count_elements(0);
	    cout<<"Введите размер массива NхM через пробел: ";    cin>>n>>m;
	
	
	    int** Array = Create_array(n,m);
	    int* New_Array = Create_number_array(n,m,Array);
	
	
	    Delete_array(n,Array);
	    cout<<"\\nКоличество не одинаковых элементов: " << Count_different_number(n,m,New_Array)<<endl;
	
	
	    delete [] New_Array;
	
	
	    _getch();
	    return 0;
	}
	
	
	int** Create_array(const int n,const int m)
	{
	    int** Arr = new int* [n];
	    for(int i(0); i<n; i++)
	        Arr[i] = new int [m];
	
	
	    srand((int)time(0));
	
	
	    for(int i(0); i<n; i++)
	        for(int j(0); j<m; j++)
	            Arr[i][j] = rand() % 100 -51;
	    return Arr;    
	}
	void Delete_array(const int n,int** Arr)
	{
	    for(int i(0); i<n; i++)
	        delete [] Arr[i];
	    delete [] Arr; 
	}
	int* Create_number_array(const int n,const int m,int** Arr)
	{
	    int* All_elements = new int [n*m];
	
	
	    int i(0);
	
	
	    while( i<n*m)
	    {
	        for(int j(0); j<n; j++)
	            for(int k(0); k<m; k++)
	            {
	                All_elements[i] = Arr[j][k];
	                i++;
	            }
	    }
	
	
	    for(int i(0); i<n*m; i++)
	    {
	        for(int j(0); j<n*m; j++)
	        {
	            if(All_elements[i] < All_elements[j])
	                swap(All_elements[i],All_elements[j]);
	        }
	    }
	    return All_elements;
	}
	int Count_different_number(const int n, const int m, int* Array)
	{
	    int Count_Number(0);
	    for(int i(0); i<n*m; i++)
	    {
	        if(!i)
	            Count_Number++;
	        else if(Array[i] != Array[i-1])
	            Count_Number++;
	    }
	    return Count_Number;
	}
	
	
	

 

[свернуть]
 

Заменить в массиве нулевые элементы единицами

Условие задачиЗаменить в массиве нулевые элементы единицами.

Листинг (исходник) программы:


		#include <iostream>
	#include <stdio.h>
	#include <conio.h>
	#include <locale>
	#include <time.h>
	using namespace std;
	int main()
	{
	    setlocale(LC_ALL,"Russian");
	    int N;
	    cout<<"Введите количество чисел в массиве: ";cin>>N;
	    int* Array = new int[N];
	    srand(time(0));
	    for(int i(0); i<N;i++)
	    {
	        Array[i] = rand()%20-5;
	        if(!Array[i])Array[i]=1;
	    }
	
		
	    for(int i(0); i<N;i++)
	        cout<<Array[i]<<endl;
	
		
	    delete [] Array;
	    _getch();
	    return 0;
	}

 

Автор: Павел Кадыров

Найти все симметричные трехзначные числа

Условие задачиНайти все симметричные трехзначные числа (например, 767).

Листинг (исходник) программы:

	#include <iostream>
	#include <stdio.h>
	#include <conio.h>
	using namespace std;
	int main()
	{
	    int n = 1000, m=3;
	    char** Array = new char* [n];
	    
	    for(int i(0); i<n; i++)
	    {
	        Array[i] = new char [m];
	        itoa(i,Array[i],10);
	    }
	    
	    for(int i(0); i<n; i++)
	        for(int j(0);j<m; j++)
	            if(Array[i][0] == Array[i][2])
	            {
	                cout<<Array[i]<<\' \';
	                break;
	            }
	    for(int i(0); i<n; i++)
	        delete [] Array[i];
	    delete [] Array;
	    _getch();
	    return 0;
	}
	

Автор: Павел Кадыров

Программа которая уменьшает первое число в пять раз, если оно больше второго по абсолютной величине

Условие задачи: Составить программу, которая уменьшает первое число в пять раз, если оно больше второго по абсолютной величине.

Листинг (исходник) программы:

	#include <iostream>
	#include <stdio.h>
	#include <conio.h>
	#include <locale>
	using namespace std;
	int main()
	{
	setlocale(LC_ALL,"Russian");
	double x,y;
	cout<<"Введите число х: ";cin>>x;
	if( abs(x)<10 )y=x;
	else if(abs(x)>=10) y= 1/x;
	cout<<"Y="<<y<<endl;
	_getch();
	return 0;
	}

Автор: Павел Кадыров