#c #integer-arithmetic
#c #целочисленная арифметика
Вопрос:
Моя цель — ввести 3 числа и вывести эти числа от наибольшего к наименьшему через целочисленные массивы, похоже, я не могу заставить это работать.
#include <stdio.h>
#include <string.h>
int main()
{
int a[3];
printf("Enter 3 numbers:");
for (int i = 0; i < 3; i ) {
scanf("%d", amp;a[i]);
}
if (a[0] > a[1] amp;amp; a[1] > a[2]) {
printf("%dt%dt%d", a[0], a[1], a[2]);
} else if (a[0] > a[2] amp;amp; a[2] > a[1]) {
printf("%dt%dt%d", a[0], a[2], a[1]);
} else if (a[1] > a[0] amp;amp; a[0] > a[2]) {
printf("%dt%dt%d", a[1], a[0], a[2]);
} else if (a[1] > a[2] amp;amp; a[2] > a[0]) {
printf("%dt%dt%d", a[1], a[2], a[0]);
} else if (a[0] > a[1] amp;amp; a[1] > a[2]) {
printf("%dt%dt%d", a[0], a[1], a[2]);
} else {
printf("%dt%dt%d", a[0], a[2], a[1]);
}
}
Комментарии:
1. В каком отношении это не работает? Какие входные данные вы предоставляете?
2. Можете ли вы привести нам примеры ввода и вывода?
3. Обратите внимание, что первое условие идентично последнему.
4. Например, случай
a1 > a2 >a3
рассматривается дважды. Более того, случай возможного равенства не рассматривается5. Вы перегибаете палку. Это трехэлементная сеть сортировки. Это можно выполнить тремя операциями сравнения и замены с индексами 1,2, затем 0,2 и, наконец, 0,1. Это буквально так (предполагая, что вы действительно хотите, чтобы они были отсортированы, а не просто с отчетами о сортировке).