Форум программистов, компьютерный форум CyberForum.ru

преобразовать умножив положительные элементы на минимальный. с использованием сортировки - C++

Восстановить пароль Регистрация
 
KorolevaE
2 / 2 / 0
Регистрация: 24.11.2012
Сообщений: 34
10.06.2013, 16:40     преобразовать умножив положительные элементы на минимальный. с использованием сортировки #1
что-то вывод не получается... Помогите(

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 100
using namespace std;
 
void gen (int a, int b, int n, int mass[N]); 
void out (int n, int mass[N]);
void umn (int n, int mass[N]);
void sort (int n, int mass[N]);
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL, "RUS");
    int a, b, n, mass[N];
    
    printf ("\nВведите количество элементов массива (n<100): ");
    scanf ("%d", &n);
 
    printf ("\nВведите начало массива: ");
    scanf ("%d", &a);
 
    printf ("\nВведите конец массива: ");
    scanf ("%d", &b); 
 
    while (n>100) {
    printf ("\nВы ввели слишком большое число. Попробуйте еще раз.\n");
    printf ("\nВведите количество элементов (n<100): ");
    scanf ("%d", &n);
    }
    gen (a, b+1, n, mass);
    out (n, mass);
    printf ("\n\nМассив после сотрировки: \n");
    sort (n, mass);
    umn (n, mass);
    printf ("\n\n");
    system ("pause");
    return 0;
}
 
void gen (int a, int b, int n, int mass[N]){
    srand (time (NULL)*1000);
    for (int i=0; i<n; i++) {
    mass[i]=rand()*1.0/(RAND_MAX)*(b-a)+a;
}
}
 
void out (int n, int mass[N]) {
    printf ("\nИсходный массив:\n", n);
    for (int i=0; i<n; i++) {
    printf ("%d\t", mass[i]);
}
}
 
void sort (int n, int mass[N]) {
    int i, j, min, t;
    for (i=0; i<n-1; i++) {
        min=i;
        for (j=i+1; j<n; j++) {
            if (mass[j]<mass[min])
                min=j;
        }
        t=mass[i];
        mass[i]=mass[min];
        mass[min]=t;
    }
    for (i=0; i<n; i++) {
        printf ("%d\t", mass[i]);
    }
}
void umn (int n, int mass[N]) {
    int i, j, min;
    for (i=0; i<n; i++) {
        if (min>mass[N])
            min=mass[N];
            
        for (i=0; i<n; i++) {
            if (mass[N]>0)
                mass[N]=mass[N]*min;
                printf("преобразованный массив:\n", mass[N]);
    }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2013, 16:40     преобразовать умножив положительные элементы на минимальный. с использованием сортировки
Посмотрите здесь:

Преобразовать массив так, чтобы сначала располагались все положительные элементы, а потом отрицательные C++
Преобразовать массив, чтобы сначала располагались все положительные элементы, а потом — все отрицательные C++
Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом - все остальные C++
C++ Преобразовать массив, заменив все положительные элементы единицами...
Дан массив размера n. Преобразовать его, умножив все положительные элементы на минимальный элемент C++
Преобразовать массив, чтобы сначала располагались все положительные элементы, а потом все отрицательные C++
C++ Преобразовать массив, чтобы сначала располагались все положительные элементы, а потом все отрицательные
Преобразовать массив, чтобы сначала располагались все положительные элементы, а потом – все отрицательные C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Doctor_
 Аватар для Doctor_
232 / 232 / 69
Регистрация: 03.02.2011
Сообщений: 1,405
10.06.2013, 17:33     преобразовать умножив положительные элементы на минимальный. с использованием сортировки #2
printf("преобразованный массив:\n", mass[N]);
тут просто текст выводится, надо было что-то типа %4d вписать

и это кстати, если не ошибаюсь С, а не С++
C
1
printf("преобразованный массив: %4d\n", mass[N]);
Добавлено через 23 минуты
Не много исправил код, не понял зачем нужны числа а и b (проверки на ввод у вас не было, если вдруг b больше размера массива и т.д. если вы хотите а и b без проверки то берите сразу по умолчания а=1 и b=N) из функции umn убрал вывод, так как у вас уже была функция out которая выводит массив на экран, поэтому можно ее использовать.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
 
using namespace std;
 
void gen(int vec[], int size);
void out(int vec[], int size);
void umn(int vec[], int size);
void sort(int vec[], int size);
 
int main() {
    srand(time(NULL));
    int N, *vec;
    do {
        printf("Input array size less than 100: ");
        scanf("%d",&N);
    } while(N > 100);
    vec = new int[N];
    gen(vec, N);
    out(vec,N);
    sort(vec,N);
    out(vec,N);
    umn(vec,N);
    out(vec,N);
    getche();
}
 
void gen(int vec[], int size) {
     for(int i=0; i<size; i++) {
             vec[i] = 5 - rand()%10;
     }
}
 
void out(int vec[], int size) {
     printf("\nOutput array:\n");
     for(int i=0; i<size; i++) {
             printf("%3d",vec[i]);
     }
}
 
void sort(int vec[], int size) {
     int min = 0;
     for(int i=0; i<size-1; i++) {
             for(int j=0; j<size-1; j++) {
                     if(vec[j+1] < vec[j]) {
                                 min = vec[j+1];
                                 vec[j+1] = vec[j];
                                 vec[j] = min;                                 
                     }
             }
     }
}
 
void umn(int vec[], int size) {
     //tak kak sort sdelan, samyj pervyj element massiva eto minimalnyj element vec[0]
     for(int i=0; i<size; i++) {
             if(vec[i] > 0) 
             vec[i] *= vec[0];
     }
}
KorolevaE
2 / 2 / 0
Регистрация: 24.11.2012
Сообщений: 34
11.06.2013, 17:57  [ТС]     преобразовать умножив положительные элементы на минимальный. с использованием сортировки #3
спасибо большое)

Добавлено через 23 минуты
a и b - это границы массива, он должен задаваться рандомно с клавиатуры.
Yandex
Объявления
11.06.2013, 17:57     преобразовать умножив положительные элементы на минимальный. с использованием сортировки
Ответ Создать тему
Опции темы

Текущее время: 23:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru