Другие языки программирования и технологии

помогите, пожалуйста, очень срочно нужно как отсортировать число 1079011205 методом пузырька ???

На Pascal:

program BubbleSort;
var
 i, j, n, x: integer;
 t: char;
 s: string;
begin
 Write('X = ');
 ReadLn(x);
 str(x, s);
 n := length(s);
 for i := n downto 2 do
  for j := 0 to i - 1 do
   if s[j] > s[j + 1] then
   begin
    t := s[j];
    s[j] := s[j + 1];
    s[j + 1] := t;
   end;
 val(s, x, n);
 WriteLn(x);
 ReadLn;
end.
Если числом выводить, то нули исчезают, лучше строкой, заменив эти строки
 val(s, x, n);
 WriteLn(x);
на
 WriteLn(s);

Если это массив, то так:

program BubbleSort;
var
 i, j, n: integer;
 t: Integer;
 s: array [1..10] of Integer;
begin
 for i := 1 to 10 do
  ReadLn(s[i]);
 n := length(s);
 for i := n downto 2 do
  for j := 0 to i - 1 do
   if s[j] > s[j + 1] then
   begin
    t := s[j];
    s[j] := s[j + 1];
    s[j + 1] := t;
   end;
 for i := 1 to 10 do
  Write(s[i], ' ');
 ReadLn;
end.
Виктор Корсаков
Виктор Корсаков
52 148
Лучший ответ
Смысла в сортировке одного числа нет!
Ибо не с чем сравнивать…

(Вот два числа уже можно отсортировать ;–)
Здесь сортировка пузырьком лишняя, достаточно будет сортировки подсчётом.

#include <stdio.h>

int sort_digits(int num){
int i, ds[10] = {0};

if(num < 0)
num = -num;

for(; num != 0; num /= 10)
++ds[num % 10];

num = 0;
for(i = 0; i < 10; ++i){
for(int j = 0; j < ds[i]; ++j)
num = (num * 10) + i;
}
return num;
}

int main(void){
printf("%d\n", sort_digits(1079011205));
return 0;
}
может числа 1,0,7,9...?