Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.49 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <locale.h>
  4. #include <stdlib.h>
  5. #include <ctime>
  6. using namespace std;
  7.  
  8. void viv(int *a, int n)
  9. {
  10.     for(int i=0;i<n;i++)
  11.         cout<<a[i]<<" ";
  12. }
  13. bool kratnost(int p, bool b,int K )
  14. {   int q;
  15.     if(p!=0 && b==1)
  16.     {
  17.         q=p%10;
  18.         if(q%K==0)
  19.         {
  20.             b=1;
  21.             p=p/10;
  22.             kratnost(p,b,K);
  23.         }
  24.         else
  25.             return 0;
  26.     }
  27.     else
  28.         return b;
  29. }
  30. void sort(int *D, int n)
  31. {
  32.     int k,max,i,j;
  33.     for(i=n-1;i>=0;i--)
  34.     {
  35.         k=i;
  36.         max=D[i];
  37.         for(j=0; j<=i-1;j++)
  38.             if(D[j]>max)
  39.             {
  40.                 k=j;
  41.                 max=D[j];
  42.             }
  43.             if(k!=i)
  44.             {
  45.                 D[k]=D[i];
  46.                 D[i]=max;
  47.             }
  48.     }
  49. }
  50. void main()
  51. {   setlocale(LC_ALL,"rus");
  52.     cout<<"Здравствуйте! Эта программа генерирует массив С из N элементов.\nВ ячейках массива хранятся";
  53.     cout<<" числа в диапазоне [A;B]. \nПрограмма выведет отсортированный массив D\n";
  54.     cout<<"в котором хранятся числа массива С, цифры которых кратны K.\n";
  55.     int *C,*D=new int [0],N,A,B,t=0,K;
  56.     bool b=1,b1=0,bb;
  57.     cout<<"Введите количество элементов в массиве (N):";
  58.     cin>>N;
  59.     for(;N<1;)
  60.     {
  61.         cout<<"Введите количество элементов в массиве (N):";
  62.         cin>>N;
  63.     }
  64.     cout<<"Введите начало отрезка (A):";
  65.     cin>>A;
  66.     cout<<"Введите конец отрезка (B):";
  67.     cin>>B;
  68.     cout<<"Введите К (Кратность цифр чисел): ";
  69.     cin>>K;
  70.     C=new int [N];
  71.     srand(time(0));
  72.  
  73.     for(int i=0;i<N;i++)            //Генерация случайным образом
  74.         C[i]=rand()%(B-A+1)+A;
  75.  
  76.     cout<<"Массив С: ";
  77.     viv(C,N);                       //Вывод C
  78.  
  79.     for(int i=0,j=0;i<N;i++)        //Проверки на кратность и создание массива D
  80.     {
  81.         bb=kratnost(C[i],1,K);
  82.         if(bb)
  83.         {
  84.             t++;
  85.             D=(int*)realloc (D,(t)*sizeof (int));
  86.             D[j]=C[i];
  87.             j++;
  88.         }
  89.     }
  90.  
  91.     cout<<endl;
  92.     cout<<"Массив D: ";
  93.     viv(D,t);                       //Вывод массива D
  94.     cout<<endl;
  95.     for(int i=0; i<t-1 && b;i++)    //Проверка на возрастание
  96.         if(D[i]<=D[i+1])
  97.         {
  98.             b1=1;
  99.             b=b1;
  100.         }
  101.         else
  102.         {
  103.             b1=0;
  104.             b=b1;
  105.         }
  106.     if (b1)
  107.         cout<<"Массив D - возрастающая последовательность:";
  108.     else
  109.     {
  110.         sort(D,t);
  111.         cout<<"Возрастающий массив D :";
  112.     }
  113.     viv(D,t);
  114.     cout<<endl;
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement