Простая целочисленная арифметика на языке C не работает

#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. Это буквально так (предполагая, что вы действительно хотите, чтобы они были отсортированы, а не просто с отчетами о сортировке).