Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.75 KB | None | 0 0
  1. /*Ввести последовательность натуральных чисел {Aj}j=1...n (n<=1000). Упорядочить последовательность по неубыванию
  2. наибольшей цифры числа, числа с одинаковыми наибольшими цифрами дополнительно упорядочить по неубыванию суммы цифр числа,
  3. числа с одинаковыми наибольшими цифрами и одинаковыми
  4. суммами цифр дополнительно упорядочить по неубыванию самого числа.*/
  5. // Shpilevaya Ksenia 6 lab: 14
  6. #include <stdio.h>
  7. #define _CRT_SECURE_NO_WARNINGS
  8. void swap(int *x, int *y)
  9. {
  10. int tmp = *x;
  11. *x = *y;
  12. *y = tmp;
  13. }
  14.  
  15. int main() {
  16.     int n,i,j,max,copymas,resid;
  17.     int sumnum = 0;
  18.     scanf("%d", &n);
  19.     int mas[1000];
  20.     int larnum[1000];
  21.     int massumnum[1000];
  22.     for(i=0;i<n;i++) {
  23.        scanf("%d",&mas[i]);
  24.        copymas = mas[i];
  25.        max = 0;
  26.        sumnum = 0;
  27.        while (copymas > 0) {
  28.            resid = copymas % 10;
  29.            sumnum = sumnum + resid;
  30.            if (resid > max) max = resid;
  31.            copymas = copymas / 10;
  32.                            }
  33.         massumnum[i] = sumnum;
  34.         larnum[i] = max;
  35.                      }
  36.     for(i=0;i<n-1;i++)
  37.         for(j=i+1; j<n;j++) {
  38.             if ((larnum[i] > larnum[j]) || ((larnum[i] == larnum[j]) && (massumnum[i] > massumnum[j]))
  39.             || ((massumnum[i] == massumnum[j]) && (mas[i] > mas[j]) && (larnum[i] == larnum[j]))) swap(&mas[i],&mas[j]);
  40.                             }
  41. //for(i=0;i<n;i++) {
  42. //printf("%d\n",mas[i]);
  43. //                 }
  44.  
  45.  return 0;  
  46.              }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement