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

Проверьте пожалуйста код препод сказал, что не верен

16.11.2014, 18:20. Просмотров 398. Ответов 9
Метки нет (Все метки)

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 <stdio.h>
#include <stdlib.h>
#include <stdbool.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<5; i++)
        {
            printf("[%i]=", i);
            scanf("%i", &A[i]);
        }
 
        printf("Укажите интервал\n");
        printf("a=");
        scanf("%i", &x);
        printf("b=");
        scanf("%i", &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оличество элементов вне интервала: %i\n", count);
 
        max = A[0];
        for ( i = 0; i<B; i++)
        {
 
 
            if (max <= A[i]){
 
                max = A[i];
                maxIn = i;
            }
 
        }
        printf("Максимальный элемент: max=A[%i]=%i\n",maxIn, A[maxIn]);
 
        {
            for (i = maxIn + 1; i < B; i++)
            {
                sum += A[i];
            }
            printf("sum=%i\n", sum);
        }
 
 
 
for (i = 0; i < B - 1; i++)
{
    for (j = 0; j < B - 1; j++)
        if (A[j] < A[j + 1])
        {
            temp = A[j + 1];
            A[j + 1] = A[j];
            A[j] = temp;
        }
}
for (i = 0; i<B; i++)
{
    printf("%i ", A[i]);
}
        return 0;
    }
а вот собственно задание

В одномерном массиве, состоящем из N вещественных элементов, вычислить:
1) количество элементов массива, лежащих вне диапазона [ a, b];
2) сумму элементов массива, расположенных после максимального элемента по
модулю;
3) упорядочить элементы массива по убыванию модулей элементов.

Добавлено через 32 секунды
выручайте а-то повесят

Добавлено через 1 минуту
особенно то когда задается интервал я задаю числа а необходимо индексы элементов где лежат числа
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2014, 18:20
Ответы с готовыми решениями:

Препод сказал что ошибка, не могу понять где
Найти сумму 2+4+6+...+k, где k вводится с клавиатуры (k&gt;0)

Препод скинул эти коды и сказал что я должна исправить их.
ОЧЕНЬ нужна Ваша ПОМОЩЬ!!! Я строитель. Заканчиваю магистратуру. Мне для защиты диссертации нужно...

Pentium 5 – препод сказал исследовать процессор
Здравствуйте, у меня катастрофа! Препод, а точнее зав.кафедры профессор и т.д. дал задание...

Написать код для игры НИМ. проверьте пожалуйста тот ли это код
#include &lt;string&gt; using namespace std; int compChoose(int markers); int userChoose(int...

Проверьте пожалуйста код
#include &lt;iostream&gt; #include&lt;stdlib.h&gt; // в этом файле содержатся функции rand() и...

9
Jewbacabra
Эксперт PHP
3927 / 3234 / 1402
Регистрация: 24.04.2014
Сообщений: 9,800
16.11.2014, 18:27 2
Цитата Сообщение от mital25 Посмотреть сообщение
В одномерном массиве, состоящем из N вещественных элементов
Цитата Сообщение от mital25 Посмотреть сообщение
int A[B];
А массив целочисленный

Цитата Сообщение от mital25 Посмотреть сообщение
количество элементов массива, лежащих вне диапазона [ a, b];
тут имеется ввиду сколько чисел вне диапозона [a, b], в не [A[a], A[b]]
1
mital25
6 / 6 / 1
Регистрация: 11.10.2013
Сообщений: 86
16.11.2014, 18:31  [ТС] 3
Цитата Сообщение от Jewbacabra Посмотреть сообщение
тут имеется ввиду сколько чисел вне диапозона [a, b], в не [A[a], A[b]]
препод же имеет ввиду как раз второе)
т.е так допустим [1 2] 3 4 5 итого 3
0
ValeryS
Модератор
7727 / 5738 / 743
Регистрация: 14.02.2011
Сообщений: 19,632
Завершенные тесты: 1
16.11.2014, 18:34 4
а почему
Цитата Сообщение от mital25 Посмотреть сообщение
for (int i = 0; i<5; i++)
и
Цитата Сообщение от mital25 Посмотреть сообщение
for (i = 0; i<B; i++)
по разному
1
16.11.2014, 18:34
mital25
6 / 6 / 1
Регистрация: 11.10.2013
Сообщений: 86
16.11.2014, 18:36  [ТС] 5
Цитата Сообщение от ValeryS Посмотреть сообщение
по разному
а это я уже накосячил)
собственно и разницы нет)
0
OnePiece
34 / 34 / 47
Регистрация: 22.02.2014
Сообщений: 107
16.11.2014, 18:43 6
1) Условие проверки будет таким if ( A[i]<a || A[i]>b)
Во 2 и 3 вы сравниваете элементы, но не модули элементов нужно сравнивать abs(A[i])
0
mital25
6 / 6 / 1
Регистрация: 11.10.2013
Сообщений: 86
16.11.2014, 19:08  [ТС] 7
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("%i", &x);
        printf("b=");
        scanf("%i", &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;
    }
Добавлено через 11 минут
теперь
вроде по модулю
0
ValeryS
Модератор
7727 / 5738 / 743
Регистрация: 14.02.2011
Сообщений: 19,632
Завершенные тесты: 1
16.11.2014, 19:47 8
Цитата Сообщение от mital25 Посмотреть сообщение
собственно и разницы нет)
разница есть
и существенная
в первом цикле i это внутренняя переменная цикла,и дальше цикла не видна а в остальных внешняя, по отношению к циклу
но например такой компилятор как Visual C 6.0, который не знал стандарта C99
очень бы сильно возмутился, два раза объявлена переменная

В общем не гоже давать переменным одно имя, можно спокойно запутаться в пространстве имен
1
mital25
6 / 6 / 1
Регистрация: 11.10.2013
Сообщений: 86
16.11.2014, 19:57  [ТС] 9
Цитата Сообщение от ValeryS Посмотреть сообщение
разница есть
и существенная
в первом цикле i это внутренняя переменная цикла,и дальше цикла не видна а в остальных внешняя, по отношению к циклу
но например такой компилятор как Visual C 6.0, который не знал стандарта C99
очень бы сильно возмутился, два раза объявлена переменная
В общем не гоже давать переменным одно имя, можно спокойно запутаться в пространстве имен
понял спасибо за четкое и доходчивое объяснение!
0
easybudda
16.11.2014, 22:14     Проверьте пожалуйста код препод сказал, что не верен
  #10
 Комментарий модератора 
Не дублируйте темы - это нарушает правила форума.
Продолжение: Вычисления в одномерном массиве (найти ошибку)
0
16.11.2014, 22:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2014, 22:14
Привет! Вот еще темы с ответами:

Проверьте пожалуйста код (C++)
Вот я сам написал код(!)) Можете проверить: main() {...

Проверьте пожалуйста код.
Option Explicit Dim i As Integer: Dim j As Integer Dim K As Integer: Dim N As Integer Dim V As...

Проверьте пожалуйста код
Программа должна проверить введенную строчку на соответствие слову как паролю.Условия Не меньше 8...


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

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

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