Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2017, 18:37   #1
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию вывести элементы массива по возрастанию - C (СИ)

не запускается
Код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <locale.h>
#include <malloc.h>
#define bitint sizeof(int)  // макрос для подстановки
 
int cmp (const int *, const int *);     // шаблон для сортировки
void print_a (int *, int);              // массив на экран
int main()
{
    int n,i; //количество чисел
    float *x; //массив этих чисел
    float proiz; // для накопления произведения чисел
    setlocale(LC_CTYPE, "Rus");//Русский язык в консоле
    int indexMin,indexMax;
    printf("Введите количество чисел в последовательности: ");
    scanf("%d", &n);
    //Выделение памяти под массив
    x = (float*)malloc(n * sizeof(float));
    //Считывание массива
    printf("Введите по одному %d чисел:\n", n);
    for( i = 0; i < n; i++){
        scanf("%f", &x[i]);
    }
    for (i = 0; i<n; i++)
        printf("%.f ", x[i]);
 
        // сортируем по возрастанию:
    qsort(x, n, bitint, (int(*) (const void *, const void *)) cmp);
 
    // массив на экран:
    printf("%f ", x[i]);
    printf("\n");
 
    free(x);
    return 0;
}
Александр121 вне форума Ответить с цитированием
Старый 01.12.2017, 19:59   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Оно даже не скомпилируется, не говоря уже о запуске. Объявленные функции надо реализовывать, они волшебным образом не появляются.
p51x вне форума Ответить с цитированием
Старый 01.12.2017, 20:42   #3
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

докиньте коменты к каждой строке хочу лучше понять

Код:
define bitint sizeof(int)  // макрос для подстановки
int cmp( const void *a, const void *b )  
{
    if  ( *((float*)a) > *((float*)b) ) // если a>b то завершить циклю с ошибкой 1?
        return 1;
     else if  ( *((float*)a) < *((float*)b) ) //если a<b то завершить циклю с ошибкой -1?
        return -1;
     else return 0;  //если a<b то завершить цикл?
}
Александр121 вне форума Ответить с цитированием
Старый 01.12.2017, 20:45   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

1. Где вы здесь увидели цикл?
2. Где здесь вы увидели хоть какой-то намек на ошибку?
3. Вы хотя бы читали те комментарии, что сделал для вас препод? Вам ничего не сказал коммент, что это компаратор?
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
си. нужно упорядочить элементы массива по возрастанию си.у меня выводятся все по порядку а нужно по возрастанию Александр121 Помощь студентам 8 01.12.2017 18:33
даны 2 массива,упорядоченные по убыванию,получить из них третий,в котором элементы расположены по возрастанию не могу реализовать iyoulka Помощь студентам 1 30.04.2016 17:25
Упорядочить по возрастанию четные элементы каждого столбца двумерного массива Аелд Общие вопросы Delphi 9 05.05.2015 14:03
Упорядочить по возрастанию элементы одномерного динамического массива Aselyabel Visual C++ 2 14.01.2014 19:41
Соединить два массива а и b в массив с так, чтобы его элементы были упорядочены по возрастанию. Поправить код. dmitriy20104 Паскаль, Turbo Pascal, PascalABC.NET 10 08.08.2012 11:21