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

Вычислить минимальный по модулю элемент массива - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.85
ostin karlail
Сообщений: n/a
09.07.2009, 17:30     Вычислить минимальный по модулю элемент массива #1
Привет всем помогите пожалуйста решить две задачки:

1.
В одномерном массиве, состоящем из n целых элементов, вычислить:
1)Минимальный по модулю элемент массива;
2)Сумму модулей массива, расположенных после первого элемента, равного нулю.
Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в четных позициях, а во второй половине - элементы, стоявшие в нечетных позициях.

2.
Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы размером 10 на 10. Найти сумму модулей элементов, расположенных выше главной диагонали.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YurA_280784
Заблокирован
09.07.2009, 17:55     Вычислить минимальный по модулю элемент массива #2
Ответ на 1.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
#include <windows.h>
#include <stdio.h>
#include <math.h>
 
int minabs(int n, int *mass);
 
int *mass = (int *)malloc(sizeof(int));
 
void main()
{
    printf("Vvedite chislo elemntov\r\n");
    int num;scanf("%d",&num);
    mass = (int *)realloc((void *)mass,sizeof(int)*num);
    printf("Vvedite elementi massiva\r\n");
    for(int i = 0; i < num; i++)
    {
        printf("mass[%d] = ",i);
        scanf("%d",&mass[i]);
    }
    printf("minimal element on abs : %d\r\n", minabs(num,mass));
    mass = (int *)realloc((void *)mass,sizeof(int));
    printf("1 - vvesti novi massiv\r\n");
    scanf("%d",&num);
    if(num == 1)
        main();
}
 
int minabs(int n, int *mass)
{
    int RetVal = mass[0];
    for(int i = 1; i < n; i++)
        if(RetVal < abs(mass[i]))
            RetVal = mass[i];
    return RetVal;
}
YurA_280784
Заблокирован
10.07.2009, 09:34     Вычислить минимальный по модулю элемент массива #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вчера времени мало было вот полное решение пункта 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 <windows.h>
#include <stdio.h>
#include <math.h>
 
int minabs(int n, int *mass);
int fndnul(int n, int *mass);
int sumupz(int n, int *mass);
void transf(int n, int * mass);
void swap(int &a, int &b);
 
int *mass = (int *)malloc(sizeof(int));
 
void main()
{
    printf("Vvedite chislo elemntov\r\n");
    int num;scanf("%d",&num);
    mass = (int *)realloc((void *)mass,sizeof(int)*num);
    printf("Vvedite elementi massiva\r\n");
    for(int i = 0; i < num; i++)
    {
        printf("mass[%d] = ",i);
        scanf("%d",&mass[i]);
    }
    printf("minimal element on abs : %d\r\n", minabs(num,mass));
    printf("summa modulei posle 1 - go nulevogo elementa : %d\r\n", sumupz(num,mass));
    printf("preobrazovani massiv\r\n");
    transf(num, mass);
    for(i = 0; i < num; i++)
        printf("mass[%d] = %d\r\n",i,mass[i]);
    mass = (int *)realloc((void *)mass,sizeof(int));
    printf("1 - vvesti novi massiv\r\n");
    scanf("%d",&num);
    if(num == 1)
        main();
}
 
int minabs(int n, int *mass)
{
    int RetVal = mass[0];
    for(int i = 1; i < n; i++)
        if(RetVal < abs(mass[i]))
            RetVal = mass[i];
    return RetVal;
}
 
int fndnul(int n, int *mass)
{
    int RetVal = -1;
    for(int i = 0;i < n; i++)
        if(mass[i] == 0)
        {
            RetVal = i;
            break;
        }
    return RetVal;
}
 
int sumupz(int n, int *mass)
{
    int sum = 0;
    int i = fndnul(n, mass);
    if(-1 < i && i < n)
        for(i; i < n; i++)
            sum += abs(mass[i]);
    return sum;
}
 
void transf(int n, int * mass)
{
    for(int i = 0,j = 0; i < n; i++)
    {
        if(i % 2 == 0)
        {
            swap(mass[j], mass[i]);
            j++;
        }
    }
}
 
void swap(int &a, int &b)
{
    b += a;
    a = b - a;
    b = b - a;
}
Миниатюры
Вычислить минимальный по модулю элемент массива  
Bozhko
Сообщений: n/a
31.05.2010, 18:04     Вычислить минимальный по модулю элемент массива #4
Здравствуйте
а если я завтра днём сброшу лёгкую задачу на тему Одномерные и двумерные массивы
поможете решить за минут 20? Просто у меня контрольная
я прям от туда и сброшу.
Yandex
Объявления
31.05.2010, 18:04     Вычислить минимальный по модулю элемент массива
Ответ Создать тему
Опции темы

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