Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. /*Лаба-6
  2. Вариант-20.
  3. Ввести последовательность натуральных чисел {Aj}j=1...n (n<=1000).
  4. Упорядочить последовательность по неубыванию наименьшей цифры числа,
  5. числа с одинаковыми наименьшими цифрами дополнительно упорядочить по неубыванию наибольшей цифры числа,
  6. числа с одинаковыми наименьшими цифрами и одинаковыми наибольшими цифрами дополнительно упорядочить по неубыванию самого числа.
  7.  
  8. */
  9.  
  10. #include <limits.h>
  11. #include <iostream>
  12. using namespace std;
  13.  
  14. int max_digit(int a){
  15. int max=0;
  16. while(a>0){
  17. if(max<a%10)
  18. max=a%10;
  19. a/=10;
  20. }
  21. return max;
  22. }
  23.  
  24. int min_digit(int a){
  25. int min=10;
  26. while(a>0){
  27. if(min>a%10)
  28. min=a%10;
  29. a/=10;
  30. }
  31. return min;
  32. }
  33.  
  34. int main(){
  35. int n=0;
  36. cin>>n;
  37. int a[n];
  38. for(int i=0;i<n;i++){
  39. cin>>a[i];
  40. }
  41. for(int i=0;i<n-1;i++){
  42. for(int j=i+1;j<n;j++){
  43. if(min_digit(a[i])>min_digit(a[j])||
  44. (min_digit(a[i])==min_digit(a[j])&&max_digit(a[i])>max_digit(a[j]))||
  45. (min_digit(a[i])==min_digit(a[j])&&max_digit(a[i])==max_digit(a[j])&&a[i]>a[j])){
  46. int t=a[i];
  47. a[i]=a[j];
  48. a[j]=t;
  49. }
  50. }
  51.  
  52. }
  53. for(int i=0;i<n;i++){
  54. cout<<a[i]<<" ";
  55. }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement