Почему не выводит отсортированные числа?
Не могу понять, почему не выводит отсортированные числа?
Я вроде ввожу 3 числа, а на выходе странные числа. Хотелось бы получить те же числа на выходе, но в правильном по возрастанию порядке порядке. А так же функция стрелян хотелось бы чтобы автоматически считала количество введенных символов.
int main(void)
{ int massive[4];
scanf("%i %i %i %i", &massive[2], &massive[1], &massive[3], &massive[0]);
for (int i=0, lenth=strlen(massive); i < lenth - 1; i++ )
{ int j = i + 1;
do
{ if (massive[j] < massive[i])
{ int temp = massive[i];
massive[i] = massive[j];
massive[j] = temp;
} j++;
} while (j < lenth );
}
}
Ответы (2 шт):
Автор решения: DmitryK
→ Ссылка
Пузырьковая сортировка
int main(void)
{
const int SIZE = 4;
int A[SIZE] = { 4, 2, 3, 1};
// scanf("%i %i %i %i", &A[2], &A[1], &A[3], &A[0]);
for (int i=0; i < SIZE - 1; i++ )
for (int j = SIZE - 1; j > i; j--)
if ( A[j] < A[j-1])
{
int temp = A[j];
A[j] = A[j-1];
A[j-1] = temp;
}
printf("%i %i %i %i\n", A[0], A[1], A[2], A[3]);
}
Автор решения: ori
→ Ссылка
#include <stdio.h>
#define ARR_SIZE 4
int
main (int argc, char *argv) {
(void) argc; (void) argv;
int massive[ARR_SIZE];
scanf ("%i %i %i %i", &massive[2], &massive[1], &massive[3], &massive[0]);
for (int i = 0; i < ARR_SIZE - 1; i++) {
int j = i + 1;
do {
if (massive[j] < massive[i]) {
int temp = massive[i];
massive[i] = massive[j];
massive[j] = temp;
}
j++;
} while (j < ARR_SIZE);
}
for (int k = 0; k < ARR_SIZE; k++) {
printf("%d\n", massive[k]);
}
}