Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Ввести последовательность натуральных чисел {Aj}j=1...n (n<=1000). Упорядочить последовательность по неубыванию
- наибольшей цифры числа, числа с одинаковыми наибольшими цифрами дополнительно упорядочить по неубыванию суммы цифр числа,
- числа с одинаковыми наибольшими цифрами и одинаковыми
- суммами цифр дополнительно упорядочить по неубыванию самого числа.*/
- // Shpilevaya Ksenia 6 lab: 14
- #include <stdio.h>
- #define _CRT_SECURE_NO_WARNINGS
- void swap(int *x, int *y)
- {
- int tmp = *x;
- *x = *y;
- *y = tmp;
- }
- int main() {
- int n,i,j,max,copymas,resid;
- int sumnum = 0;
- scanf("%d", &n);
- int mas[1000];
- int larnum[1000];
- int massumnum[1000];
- for(i=0;i<n;i++) {
- scanf("%d",&mas[i]);
- copymas = mas[i];
- max = 0;
- sumnum = 0;
- while (copymas > 0) {
- resid = copymas % 10;
- sumnum = sumnum + resid;
- if (resid > max) max = resid;
- copymas = copymas / 10;
- }
- massumnum[i] = sumnum;
- larnum[i] = max;
- }
- for(i=0;i<n-1;i++)
- for(j=i+1; j<n;j++) {
- if ((larnum[i] > larnum[j]) || ((larnum[i] == larnum[j]) && (massumnum[i] > massumnum[j]))
- || ((massumnum[i] == massumnum[j]) && (mas[i] > mas[j]) && (larnum[i] == larnum[j]))) swap(&mas[i],&mas[j]);
- }
- //for(i=0;i<n;i++) {
- //printf("%d\n",mas[i]);
- // }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement