Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 24.10.2017
Сообщений: 12

Найти количество элементов массива, лежащих в диапазоне от А до В

26.10.2017, 21:08. Показов 1820. Ответов 5

Студворк — интернет-сервис помощи студентам
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
/*11. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 
- количество элементов массива, лежащих в диапазоне от А до В; 
- сумму элементов массива, расположенных после максимального элемента 
*/ 
#include<stdio.h> 
#include <locale> 
#include <conio.h>
void main() 
{ 
setlocale(LC_ALL, "russian"); 
float arr[20];
int  n, sum1 = 0, A, B, sum2 = 0, i, max = arr[0], i_max = 0; ;
while (1)
{
    printf ("Введите размерность массива:\n");
    scanf ("%d",&n);
for (i = 0; i < n; i++) 
{ 
printf("Число %d =\n ", i + 1); 
scanf("%d", &arr[i]); 
} 
for (i = 1; i < n; i++) 
if (max < arr[i]) 
{ 
max = arr[i]; 
i_max = i; 
} 
printf("Номер максимального элемента = %d \n", i_max + 1); 
for (i = 0; i < 5; i++) 
if (i > i_max) 
{ 
sum1 += arr[i]; 
} 
printf("Сумма элементов массива, расположенных после максимального  = %d\n", sum1); 
printf("Введите диапазон AB: \n "); 
scanf("%d%d", &A,&B); 
for (i = 0; i < 5; i++) 
if ((arr[i] > A && arr[i] < B) || (arr[i] < A && arr[i] > B)) 
sum2 += i; 
printf_s("Количество элементов массива, лежащих в диапазоне от А до В = %d\n ", sum2);
}
getch ();
 
}
скажите, пожалуйста, что неправильно. неправильно работает.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.10.2017, 21:08
Ответы с готовыми решениями:

Найти количество элементов массива, лежащих в диапазоне от А до В
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, лежащих в диапазоне от А до В; ...

Найти количество элементов массива, лежащих в диапазоне от А до В
Найти количество элементов массива, лежащих в диапазоне от -10 до 20

Найти количество элементов массива, лежащих в диапазоне от a до b
В одномерном массиве, состоящем из вещественных элементов, вычислить: a) количество элементов массива, лежащих в диапазоне от a до b...

5
14 / 14 / 13
Регистрация: 05.07.2011
Сообщений: 233
26.10.2017, 21:35
alexlemeni, а программа в том виде, в каком она здесь представлена, у Вас скомпилировалась?
Просто у меня нет.

Добавлено через 7 минут
alexlemeni, хорошим плюсом будет явно проинициализировать явно все переменные во избежание курьёзов.
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
26.10.2017, 21:46
В 12 строке max = arr[0], но массив ещё не введён, значение arr[0] не определено.
В 20 строке нужен %f вместо %d.
В 29 строке - почему то цикл до 5, а не до n.
В 39 строке - зачем прибавлять индекс i? Достаточно sum2++.
В 40 строке почему то printf_s, хотя в других местах просто printf.
1
 Аватар для Megageorgio
79 / 81 / 66
Регистрация: 03.04.2017
Сообщений: 216
26.10.2017, 21:59
alexlemeni, на ошибки уже указали, потому просто кину пример того как можно реализовать данную задачу
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
#include <stdio.h>
#include <locale.h>
#include <conio.h>
int main() {
    int n, nmax = 0, count = 0;
    setlocale(0, "");
    printf("Количество элементов: ");
    scanf("%d", &n);
    float arr[n], a, b, sum = 0;
    printf("Диапазон: ");
    scanf("%f%f", &a, &b);
    if (a > b) arr[0] = a, a = b, b = arr[0];
    printf("1 элемент массива: ");
    scanf("%f", &arr[0]);
    float max = arr[0];
    if(arr[0] >= a && arr[0] <= b) count++;
    for(int i = 1; i < n; i++) {
        printf("%d элемент массива: ", i+1);
        scanf("%f", &arr[i]);
        if(arr[i] > max) max = arr[i], nmax = i;
        if(arr[i] >= a && arr[i] <= b) count++;
    }
    nmax++;
    for(int i = nmax; i < n; i++) sum += arr[i]; 
    printf("Номер максимального элемента - %d\n"
           "Сумма элементов после максимального элемента равна %g\n"
           "Количество элементов лежащих в диапазоне от %g до %g равно %d\n"
           , nmax, sum, a, b, count), getch();
    return 0;
}
0
0 / 0 / 0
Регистрация: 24.10.2017
Сообщений: 12
26.10.2017, 22:16  [ТС]
что значит в вашем коде count? можете объяснить , не могу понять.
0
2487 / 1151 / 709
Регистрация: 25.04.2016
Сообщений: 3,315
26.10.2017, 22:21
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
#include <stdio.h>
#include <locale.h>
#include <conio.h>
 
/* ***********************************************************************
 * В одномерном массиве, состоящем из n вещественных элементов, вычислить:
 * - количество элементов массива, лежащих в диапазоне от А до В;
 * - сумму элементов массива, расположенных ПОСЛЕ максимального элемента
 *
 * Что подразумевается под A и B ? Номера элементов массива?
 * Значения ячеек?
 *
 * Контрольные значения
 * n = 6;
 * arr[n] = {6, 2, 5, 1, 3, 4};
 * Номер максимального элемента = 1
 * Сумма элементов массива, расположенных после максимального  = 15
 * A = 5;
 * B = 3;
 * Количество элементов массива, лежащих в диапазоне от А до В = 1
 * **********************************************************************/
 
void main()
{
    setlocale(LC_ALL, "russian");
    int arr[20];        //нет смысла во float, елси мы работаем только с целыми
    int  n, sum1 = 0, A, B, sum2 = 0, i;
    //while (1)         // в чем смысл цикла while?
    //{
        printf ("Введите размер массива:\n");
        scanf ("%d", &n);
 
        // получаем значения элементов массива
        for (i = 0; i < n; i++)
        {
            printf("Число %d = ", i + 1);
            scanf("%d", &arr[i]);
        }
 
        // находим максимальное значение и номер его элемента
        int max = arr[0];
        int i_max = 0;
        for (i = 1; i < n; i++)
            if (max < arr[i])
            {
                max = arr[i];
                i_max = i;
            }
        printf("Номер максимального элемента = %d \n", i_max + 1);
 
        // находим сумму всех элементов после максимального
        for (i = i_max+1; i < n; i++) { sum1 += arr[i]; }
        printf("Сумма элементов массива, расположенных после");
        printf(" максимального  = %d\n", sum1);
 
        printf("Введите диапазон AB:\n");
        printf("a = "); scanf("%d", &A);
        printf("b = ");scanf("%d", &B);
        // а вот что здесь определяется, одному автору задания ведомо
        for (i = 0; i < n; i++)
        {
            if ((arr[i] > A && arr[i] < B) || (arr[i] > B && arr[i] < A))
            {
                sum2 += 1;
            }
        }
 
        printf("Количество элементов массива, лежащих в диапазоне");
        printf(" от А до В = %d\n ", sum2);
    //}
    getch ();
    //while (!getchar()) ;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.10.2017, 22:21
Помогаю со студенческими работами здесь

Найти количество элементов массива, лежащих в диапазоне от А до В
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, лежащих в диапазоне от А до В; ...

Найти количество элементов массива, лежащих в диапазоне от А до В
1) Найти количество элементов массива, лежащих в диапазоне от А до В (вводятся с клавиатуры). 2) Найти сумму элементов массива,...

Найти количество элементов массива, лежащих в заданном диапазоне
Необходимо вывести количество элементов массива, лежащих в диапазоне от А до В. Правильно ли я выполнила задачу?#include &lt;iostream&gt; ...

Найти количество элементов массива, лежащих в заданном диапазоне
В одномерном массиве, состоящем из п вещественных элементов, вычислить: Количество элементов массива, лежащих в диапазоне от А до В.

Найти количество элементов массива, лежащих в заданном диапазоне
1. Найти количество элементов массива, лежащих в диапазоне от А до В. 2. Найти сумму элементов массива, расположенных после максимального...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru