21

Re: С++ сортування масиву та знаходження мінімума

ось ніяк не можу зрозуміти останю строчку завданя "Відсортувати масив за незменшенням елементів, виключаючи змасиву додатні." другу частину я зрозумів, треба виключити усі числа що більше 0, а як зрозуміти за незменшеням ?

22

Re: С++ сортування масиву та знаходження мінімума

За незменшенням - за зростанням.
А я навпаки другу частину не зрозумів.

Ось код:

#define N 11
#include <stdio.h>
#include <stdlib.h>
int main() {

    int *a, *a_sorted;
    int i, j, min, tmp, n_sorted;
    
    a = (int *) malloc (sizeof(int)*N);
    a_sorted = (int *) malloc (sizeof(int)*N);
    
    // input
    for (i = 0; i < N; i++) {
        printf("a[%d]=", i);
        scanf("%d", &a[i]);
    }
    
    
    // find min value and min elements 
    min = a[0];
    for (i = 1; i < N; i++) {
        if (a[i] < min ) {
            min = a[i];
        }
    }
    
    // output min value and min elements
    printf("\nmin=%d\n", min);
    printf("min elements:\n");
    for (i = 0; i < N; i++) {
        if (a[i] == min) {
            printf("%d\n", i);
        }
    }
    
    // sort
    for (i = 0; i < N; i++) {
        for (j = 0; j < N - 1; j++) {
            if(a[i] < a[j]) {
                tmp = a[i];
                a[i] = a[j];
                a[j] = tmp;
            }
        }
    }
    n_sorted = 0;
    for (i = 0; i < N; i++) {
        if (a[i] > 0) {
            a_sorted[n_sorted] = a[i];
            n_sorted++;
        }
    }
    
    // output sorted array
    printf("\nsorted array:\n");
    for (i = 0; i < n_sorted; i++) {
        printf("A[%d]=%d\n", i, a_sorted[i]);
    }
    
    return 0;
}

23

Re: С++ сортування масиву та знаходження мінімума

я вже все як би зрозумів, якщо короче то залишилось з сортировки виключити числа більше 0!

24

Re: С++ сортування масиву та знаходження мінімума

А там навпаки виключити...
Тоді умова ось так повинна бути:   

if (a[i] < 0) {
            a_sorted[n_sorted] = a[i];
            n_sorted++;
    }

25

Re: С++ сортування масиву та знаходження мінімума

зараз програма виключає числа меньше 0, тоб то навпаки нам потрібно

26

Re: С++ сортування масиву та знаходження мінімума

замінив, теперь повина працювати як треба! залишилось тільки одне питання!

27

Re: С++ сортування масиву та знаходження мінімума

Яке питання?
min - мінімальне значення
min elements - це індекси елементів з мінімальним значенням

28

Re: С++ сортування масиву та знаходження мінімума

нам потрібно знайти мінімальне число та його порядковий номер, а якщо подивитися на цей скрін http://rusfolder.com/foto/view_foto/-e0bjtwm3edm/ то не правильно виходить

29

Re: С++ сортування масиву та знаходження мінімума

і іще знайти мінімум та його порядковий номер з діапазону [-5;5]

30

Re: С++ сортування масиву та знаходження мінімума

ну якщо я правильно зрозумів, то нам потрібно мінімальне число та його індекс тільки з цього діапазону шукати [-5;5] а у нас шукае по всім даним!

31

Re: С++ сортування масиву та знаходження мінімума

#define N 11
#include <stdio.h>
#include <stdlib.h>
int main() {

    int *a, *a_sorted;
    int i, j, min, tmp, n_sorted;
    
    a = (int *) malloc (sizeof(int)*N);
    a_sorted = (int *) malloc (sizeof(int)*N);
    
    // input
    for (i = 0; i < N; i++) {
        printf("a[%d]=", i);
        scanf("%d", &a[i]);
    }
    
    
    // find min value and min elements 
    min = a[0];
    for (i = 1; i < N; i++) {
        if (a[i] < min && a[i] >= -5 && a[i] <= 5) {
            min = a[i];
        }
    }
    
    if (min <= 5 && min >= -5) {
        // output min value and min elements
        printf("\nmin=%d\n", min);
        printf("min elements:\n");
        for (i = 0; i < N; i++) {
            if (a[i] == min) {
                printf("%d\n", i);
            }
        }
    } else {
        printf("\nNo min elements!\n");    
    }
    
    // sort
    for (i = 0; i < N; i++) {
        for (j = 0; j < N - 1; j++) {
            if(a[i] < a[j]) {
                tmp = a[i];
                a[i] = a[j];
                a[j] = tmp;
            }
        }
    }
    n_sorted = 0;
    for (i = 0; i < N; i++) {
        if (a[i] < 0) {
            a_sorted[n_sorted] = a[i];
            n_sorted++;
        }
    }
    
    // output sorted array
    printf("\nsorted array:\n");
    for (i = 0; i < n_sorted; i++) {
        printf("A[%d]=%d\n", i, a_sorted[i]);
    }
    
    return 0;
}

32

Re: С++ сортування масиву та знаходження мінімума

ну начебто правильно працює, але я не впевнений що я вірно зрозумів завдання!

33 Востаннє редагувалося julius (02.10.2012 23:53:53)

Re: С++ сортування масиву та знаходження мінімума

та взагалі усе начебто як треба працює) як я можу вам віддячити? Ви мені дуже допомогли!

Подякували: Replace1

34

Re: С++ сортування масиву та знаходження мінімума

Кращий спосіб віддячити - це залишити десь посилання на цей форум. Якщо є де звичайно :)

http://replace.org.ua/ - Український форум програмістів

35

Re: С++ сортування масиву та знаходження мінімума

звісно є де!) роскажу одногрупникам нехай заходять, можу написати статтю на ваш форум на своєму сайті, рекламні статті дуже добре пишу!

Подякували: Replace1

36

Re: С++ сортування масиву та знаходження мінімума

Статті вистачить :)

37

Re: С++ сортування масиву та знаходження мінімума

ок) завтра ж займусь цим! можу навіть потім кинути посилання, прочитаете! знаю що рекламні статті з посиланнями добре впливають на пошуковиків! :)

38

Re: С++ сортування масиву та знаходження мінімума

В приват. Тему закриваю.