Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool IsPalindrome(int n)
- {
- int s = 0, m = n;
- do
- s = s*10+m % 10;
- while(m /= 10);
- return s == n;
- }
- void Sort(int* a, const int* pal, int np)
- {
- for (int i = 0; i < np - 1; ++i)
- {
- for (int j = np - 2; j >= i; --j)
- {
- if (a[pal[j]] > a[pal[j + 1]])
- {
- std::swap(a[pal[j]], a[pal[j + 1]]);
- }
- }
- }
- }
- void main()
- {
- FILE *f = fopen("file.txt", "r");
- int s, *a, *pa, s1 = 0;
- fscanf(f, "%d", &s);
- a = (int*)malloc(sizeof(int)* s);
- pa = (int*)malloc(sizeof(int)* s);//массив для палиндромов
- for (int i = 0; i < s; ++i)
- {
- fscanf(f, "%d", &a[i]);
- if (IsPalindrome(a[i]))
- pa[s1++] = i;
- }
- Sort(a, pa, s1);
- for (int i = 0; i < s; ++i)
- std::cout << a[i] << "\n";
- fclose(f);
- getchar();
- }
Advertisement
Add Comment
Please, Sign In to add comment