Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
mital25
6 / 6 / 1
Регистрация: 11.10.2013
Сообщений: 86
1

Вычисления в одномерном массиве (найти ошибку)

16.11.2014, 19:39. Просмотров 903. Ответов 16
Метки нет (Все метки)

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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <locale.h>
 
#define B 5
 
int main()
{
    setlocale(LC_CTYPE, "Russian");
        int A[B];
        int i,j,a,b;
        int max;
        int maxIn = 0;
        int sum=0;
        int count = 0;//переменная счетчика
        int x, y;
        int temp;
 
        printf("Введем элементы массива\n");
        for (int i = 0; i < B; i++)
        {
            printf("[%d]=", i);
            scanf("%d", &A[i]);
        }
 
        printf("Укажите интервал\n");
        printf("a=");
        scanf("%d", &x);
        printf("b=");
        scanf("%d", &y);
        a=A[x],b=A[y];//отрезок a,b
        for (i = 0; i<B; i++)
        {
            if (A[i] < a || A[i] > b)
                count++;//сам подсчет
        }
 
        printf("Kоличество элементов вне интервала: %d\n", count);
 
        max = abs(A[0]);
        for ( i = 0; i<B; i++)
        {
            if (max <= abs(A[i])){
                max = abs(A[i]);
                maxIn = i;
            }
 
        }
        printf("Максимальный элемент: max=A[%d]=%d\n",maxIn, abs(A[maxIn]));
 
        {
            for (i = maxIn + 1; i < B; i++)
                sum += A[i];
            printf("sum=%d\n", sum);
        }
 
for (i = 0; i < B ; i++)
{
    for (j = i+1; j < B ; j++)
        if (abs(A[i]) < abs(A[j]))
        {
            temp = A[j];
            A[j] = A[i];
            A[i] = temp;
        }
}
for (i = 0; i<B; i++)
    printf("%i ", A[i]);
 
        return 0;
    }
это код
это задание
В одномерном массиве, состоящем из N вещественных элементов, вычислить:
1) количество элементов массива, лежащих вне диапазона [ a, b];
2) сумму элементов массива, расположенных после максимального элемента по
модулю;
3) упорядочить элементы массива по убыванию модулей элементов.
картинка прикреплена с программой
0
Миниатюры
Вычисления в одномерном массиве (найти ошибку)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2014, 19:39
Ответы с готовыми решениями:

Найти минимальный элемент в одномерном массиве
#include &quot;stdafx.h&quot; #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; float mad(float...

Найти одинаковые элементы в одномерном массиве
Здравствуйте! Задачка такая: надо найти в одномерном массиве повторяющиеся элементы и вывести...

В одномерном массиве найти число элементов, больших k
Доброй ночи, уважаемые программисты! Прошу Вашей помощи! Я сама изучала язык С++, но на...

Найти количество минимальных элементов в одномерном массиве
Всем привет. Ребята как найти количество минимальных элементов в одномерном массиве?

Подсчитать количество элементов в массиве, являющихся точным квадратом другого элемента в этом массиве (найти ошибку)
Задание :Подсчитать количество элементов в массиве, являющихся точным квадратом другого элемента в...

16
mital25
6 / 6 / 1
Регистрация: 11.10.2013
Сообщений: 86
16.11.2014, 19:43  [ТС] 2
препод лютует сжечь хочет)))помогите пожалуйста ошибка с его слов в том что я не правильно делаю выбор интервала
т.е надо указывать индексы элементов массива а я делаю не то( ну типа так должно быть эл массива 0 1 2 3 4 в них лежат числа я выбираю интервал [0,2] вне него мне должно показать 2 эл
0
Kerry_Jr
Эксперт PHP
2213 / 2009 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
16.11.2014, 19:49 3
mital25, если я не ошибаюсь, интервал - это не номера элементов массива, а сами элементы. Поэтому это
C
1
2
3
4
5
6
a=A[x],b=A[y];//отрезок a,b
for (i = 0; i<B; i++)
{
    if (A[i] < a || A[i] > b)
        count++;//сам подсчет
}
замените на это
C
1
2
3
for (i = 0; i<B; i++)
    if (A[i] < x || A[i] > y)
        count++;//сам подсчет
1
mital25
6 / 6 / 1
Регистрация: 11.10.2013
Сообщений: 86
16.11.2014, 19:55  [ТС] 4
ну не получатся черт побери)))) заменил все уже голова лопнет наверно с 12 дня мучаюсь
0
16.11.2014, 19:55
Kerry_Jr
Эксперт PHP
2213 / 2009 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
16.11.2014, 19:57 5
mital25, что получается и что должно получиться?
0
mital25
6 / 6 / 1
Регистрация: 11.10.2013
Сообщений: 86
16.11.2014, 20:03  [ТС] 6
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
что получается и что должно получиться?
вот иллюстрация)))ниже
0
Kerry_Jr
Эксперт PHP
2213 / 2009 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
16.11.2014, 20:04 7
Цитата Сообщение от mital25 Посмотреть сообщение
вот иллюстрация)))ниже
1
mital25
6 / 6 / 1
Регистрация: 11.10.2013
Сообщений: 86
16.11.2014, 20:04  [ТС] 8
вот
0
Миниатюры
Вычисления в одномерном массиве (найти ошибку)  
mital25
6 / 6 / 1
Регистрация: 11.10.2013
Сообщений: 86
16.11.2014, 20:06  [ТС] 9
прошу прощения торможу чет
0
Kerry_Jr
Эксперт PHP
2213 / 2009 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
16.11.2014, 20:08 10
Лучший ответ Сообщение было отмечено mital25 как решение

Решение

mital25,
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
C
1
2
3
for (i = 0; i<B; i++)
    if (i < x || i > y)
        count++;//сам подсчет
1
Jewbacabra
Эксперт PHP
3928 / 3235 / 1402
Регистрация: 24.04.2014
Сообщений: 9,800
16.11.2014, 20:09 11
mital25,
C
1
count = B - (y - x + 1); // при условии что y >= x. Если не так, то поменять их местами, и y и x < B
1
mital25
6 / 6 / 1
Регистрация: 11.10.2013
Сообщений: 86
16.11.2014, 20:17  [ТС] 12
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Сообщение от Kerry_Jr
Код C
1
2
3
for (i = 0; i<B; i++)
* * if (i < x || i > y)
* * * * count++;//сам подсчет
спасибо действительно помогло но я спешу вас удивить этим я уже натыкался на такое много раз(ща картинку пришлю)
0
mital25
6 / 6 / 1
Регистрация: 11.10.2013
Сообщений: 86
16.11.2014, 20:20  [ТС] 13
почему так случилось ведь до изменения сумму выдавало отлично)
0
Миниатюры
Вычисления в одномерном массиве (найти ошибку)  
mital25
6 / 6 / 1
Регистрация: 11.10.2013
Сообщений: 86
16.11.2014, 20:21  [ТС] 14
Цитата Сообщение от Jewbacabra Посмотреть сообщение
1
count = B - (y - x + 1); // при условии что y >= x. Если не так, то поменять их местами, и y и x < B
а это принципиально у меня count++?
0
Kerry_Jr
Эксперт PHP
2213 / 2009 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
16.11.2014, 20:37 15
Лучший ответ Сообщение было отмечено mital25 как решение

Решение

Цитата Сообщение от mital25 Посмотреть сообщение
сумму выдавало отлично
А что сейчас не так? У Вас массив 5 9 6 4 2. Макс 9, значит сумма после него будет 6 + 4 + 2 = 12. Здесь все верно.
1
mital25
6 / 6 / 1
Регистрация: 11.10.2013
Сообщений: 86
16.11.2014, 20:39  [ТС] 16
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Здесь все верно.
перечитав задание я понял )) спасибо вам огромное)))
0
Kerry_Jr
Эксперт PHP
2213 / 2009 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
16.11.2014, 20:44 17
Цитата Сообщение от mital25 Посмотреть сообщение
а это принципиально
не принципиально, но алгоритмически намного лучше, чем проход циклом по всем индексам.
1
16.11.2014, 20:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2014, 20:44

Найти самую длинную последовательность чисел в одномерном массиве
Дано задание: В массиве целых чисел найти минимальный и максимальный элементы и поменять их...

В одномерном массиве найти максимальный элемент среди отрицательных
Привет. Решаю задачу на си и не могу догнать один момент. В условии сказано: в одномерном числовом...

В одномерном массиве найти среднее значение среди отрицательных элементов
В одномерном массиве A из n элементов найти среднее значение среди отрицательных элементов и...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru