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

Код рабочий, но на VS почему то не работает

04.07.2019, 19:47. Показов 1378. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include "iostream"
#include <iostream>
#include <ctime>
#define MAX_LENGTH 1024
#include <math.h>
 
int counter(float *A, int a, int b, int n)
{
    int count = 0, i;
    for (i = 0; i < n; i++)
    {
        if (A[i] >= a && A[i] <= b)
            count++;
    }
    return count;
}
 
float summa(float *A, int n)
{
    int sum = 0, i, max = 0, max_elem = A[0];
    for (i = 1; i < n; i++)
    {
        if (A[i] > A[i - 1] && A[i] > max_elem)
        {
            max = i;
            max_elem = A[i];
        }
    }
    i = max + 1;
    for (i; i < n; i++)
        sum += A[i];
    return sum;
}
 
float sort(float *A, int n)
{
    int tmp, i, j;
 
    for (i = 0; i < n - 1; ++i)
    {
        for (j = 0; j < n - 1; ++j)
        {
            if (fabs(A[j + 1]) > fabs(A[j]))
            {
                tmp = A[j + 1];
                A[j + 1] = A[j];
                A[j] = tmp;
            }
        }
    }
}
 
int main()
{
    setlocale(0, "rus");
    int n = -1, i, v, count, a, b;
    float A[MAX_LENGTH], sum = 0;
    while (n <= 0 || n > MAX_LENGTH)
    {
        printf("Введите размер массива, он должен быть больше 0 и не больше 1024: ");
        scanf_s("%i", &n);
        while (getchar() != '\n')
        {
            printf("Введите размер массива, он должен быть больше 0 и не больше 1024: ");
            scanf_s("%i", &n);
        }
    }
    printf("Выберите способ заполнения массива:\n1.Случайно сгенерированные числа \n2.Ввод своих чисел\nВведите номер варианта: ");
    scanf_s("%i", &v);
    while ((v != 1) && (v != 2))
    {
        fflush(stdin);
        printf("Введите число 1 или 2: ");
        scanf_s("%i", &v);
    }
    if (v == 1)
    {
        srand(time(NULL));
        for (i = 0; i < n; i++)
        {
            A[i] = -500 + rand() % (1001);
        }
    }
    else
    {
        for (i = 0; i < n; i++)
        {
            printf("Введите элемент A[%d]: ", i);
            scanf_s("%f", &A[i]);
        }
    }
    printf("Ваш массив: ");
    for (i = 0; i < n; i++)
        printf("%f ", A[i]);
    printf("\nВведите отрезок [a,b]: ");
    scanf_s("%i %i", &a, &b);
    while (b <= a)
    {
        printf("Введите корректный отрезок [a,b]: ");
        scanf_s("%i %i", &a, &b);
    }
    count = counter(&A, a, b, n);
    printf("Количество элементов массива, значения которых принадлежат отрезку [%i,%i]: %i\n", a, b, count);
    sum = summa(&A, n);
    printf("Cумма элементов массива, расположенных после максимального элемента: %f\n", sum);
    sort(&A, n);
    printf("Массив, упорядоченный по убыванию модулей элементов: ");
    for (i = 0; i < n; i++)
        printf("%f ", A[i]);
    printf("\n");
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.07.2019, 19:47
Ответы с готовыми решениями:

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

Специализация шаблона для char * (рабочий код, но непонятно почему)
Явное определение специализации – это такое определение, в котором за ключевым словом template следует пара угловых скобок &lt;&gt;, а за...

Рабочий код не работает на другой версии c++
Написал программу по заданию препода на с++ не на своём компе. На моей версии не dev-C 5.7.1 пишет ошибку.(ошибка на скрине. я думаю что...

6
Злостный нарушитель
 Аватар для Verevkin
10357 / 5772 / 1274
Регистрация: 12.03.2015
Сообщений: 26,672
04.07.2019, 20:25
Ещё один пример для темы "Как нельзя задавать вопросы на форуме".
ФТОПКУ.
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
04.07.2019, 20:33
Цитата Сообщение от tatarich Посмотреть сообщение
sum = summa(&A, n);
Думаю, здесь надо summa(A, n)
0
 Аватар для Andrey B
170 / 122 / 61
Регистрация: 06.02.2015
Сообщений: 300
04.07.2019, 20:34
Лучший ответ Сообщение было отмечено tatarich как решение

Решение

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
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <iostream>
#include <ctime>
#define MAX_LENGTH 1024
#include <math.h>
 
int counter(float *A, int a, int b, int n){
    int count = 0, i;
    for (i = 0; i < n; i++){
        if (A[i] >= a && A[i] <= b)
            count++;
    }
    return count;
}
 
float summa(float *A, int n){
    int sum = 0, i, max = 0, max_elem = A[0];
    for (i = 1; i < n; i++){
        if (A[i] > A[i - 1] && A[i] > max_elem){
            max = i;
            max_elem = A[i];
        }
    }
 
    i = max + 1;
    for (i; i < n; i++){
        sum += A[i];
    }
    return sum;
}
 
void sort(float *A, int n){
    int tmp, i, j;
    for (i = 0; i < n - 1; ++i){
        for (j = 0; j < n - 1; ++j){
            if (fabs(A[j + 1]) > fabs(A[j])){
                tmp = A[j + 1];
                A[j + 1] = A[j];
                A[j] = tmp;
            }
        }
    }
}
 
int main(){
    setlocale(0, "rus");
    int n = -1, i, v, count, a, b;
    float A[MAX_LENGTH], sum = 0;
    while (n <= 0 || n > MAX_LENGTH){
        printf("Введите размер массива, он должен быть больше 0 и не больше 1024: ");
        scanf_s("%i", &n);
        while (getchar() != '\n'){
            printf("Введите размер массива, он должен быть больше 0 и не больше 1024: ");
            scanf_s("%i", &n);
        }
    }
    printf("Выберите способ заполнения массива:\n1.Случайно сгенерированные числа \n2.Ввод своих чисел\nВведите номер варианта: ");
    scanf_s("%i", &v);
    while ((v != 1) && (v != 2)){
        fflush(stdin);
        printf("Введите число 1 или 2: ");
        scanf_s("%i", &v);
    }
    if (v == 1){
        srand(time(NULL));
        for (i = 0; i < n; i++){
            A[i] = -500 + rand() % (1001);
        }
    }
    else{
        for (i = 0; i < n; i++){
            printf("Введите элемент A[%d]: ", i);
            scanf_s("%f", &A[i]);
        }
    }
 
    printf("Ваш массив: ");
    for (i = 0; i < n; i++){
        printf("%f ", A[i]);
    }
    printf("\nВведите отрезок [a,b]: ");
    scanf_s("%i %i", &a, &b);
    while (b <= a){
        printf("Введите корректный отрезок [a,b]: ");
        scanf_s("%i %i", &a, &b);
    }
    count = counter(A, a, b, n);
    printf("Количество элементов массива, значения которых принадлежат отрезку [%i,%i]: %i\n", a, b, count);
    sum = summa(A, n);
    printf("Cумма элементов массива, расположенных после максимального элемента: %f\n", sum);
    sort(A, n);
    printf("Массив, упорядоченный по убыванию модулей элементов: ");
    for (i = 0; i < n; i++){
        printf("%f ", A[i]);
    }
    printf("\n");
    system("pause");
    return 0;
}
если действительно хотите хоть чему-нибудь научиться
1. корректно ставьте проблемы. Какая ошибка ? Какая студия ? Что сделал чтобы исправить ошибку
2. научись оформлять тему
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
04.07.2019, 20:54
Цитата Сообщение от tatarich Посмотреть сообщение
Код рабочий
Ума не приложу, как это могло где-то работать
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include <iostream>
#include <ctime>
 
//#include <math.h>
 
 
 
int counter(double *A, double a, double b, int n)
{
    int count = 0;
    for (int i = 0; i < n; i++)
    {
        if (A[i] >= a && A[i] <= b)
            count++;
    }
    return count;
}
 
double summa(double *A, int n)
{
    double sum = 0;
    int max = 0;
    double max_elem = A[0];
    for (int i = 1; i < n; i++)
    {
        if (A[i] > A[i - 1] && A[i] > max_elem)
        {
            max = i;
            max_elem = A[i];
        }
    }
    for (int i=max+1; i < n; i++)
        sum += A[i];
    return sum;
}
 
void sort(double *A, int n)
{
    for (int i = 0; i < n - 1; ++i)
    {
        for (int j = 0; j < n - 1; ++j)
        {
            if (fabs(A[j + 1]) > fabs(A[j]))
            {
                double tmp = A[j + 1];
                A[j + 1] = A[j];
                A[j] = tmp;
            }
        }
    }
}
 
int main()
{
    setlocale(LC_ALL, "rus");
    const int MAX_LENGTH = 1024;
    double A[MAX_LENGTH], sum = 0;
    
    int n = 0;
    while (n <= 0 || n > MAX_LENGTH)
    {
        printf("Введите размер массива, он должен быть больше 0 и не больше 1024: ");
        scanf_s("%i", &n);
    }
    
    int v=0;
    while ((v != 1) && (v != 2))
    {
        printf("Выберите способ заполнения массива:\n1.Случайно сгенерированные числа \n2.Ввод своих чисел\nВведите номер варианта: ");
        scanf_s("%i", &v);
    }
    if (v == 1)
    {
        srand((unsigned)time(NULL));
        for (int i = 0; i < n; i++)
        {
            A[i] = (double)rand()/RAND_MAX*100.-50.0;
        }
    }
    else
    {
        for (int i = 0; i < n; i++)
        {
            printf("Введите элемент A[%d]: ", i);
            scanf_s("%lf", &A[i]);
        }
    }
 
    printf("Ваш массив: ");
    for (int i = 0; i < n; i++)
        printf("%6.1lf", A[i]);
    double a, b;
    printf("\nВведите отрезок [a,b]: ");
    scanf_s("%lf%lf", &a, &b);
    while (b <= a)
    {
        printf("Введите корректный отрезок [a,b]: ");
        scanf_s("%lf%lf", &a, &b);
    }
    int count = counter(A, a, b, n);
    printf("Количество элементов массива, значения которых принадлежат отрезку [%4.1lf:%4.1lf]: %i\n", a, b, count);
    double s = summa(A, n);
    printf("Cумма элементов массива, расположенных после максимального элемента: %6.1lf\n", s);
    sort(A, n);
    printf("Массив, упорядоченный по убыванию модулей элементов:\n");
    for (int i = 0; i < n; i++)
        printf("%6.1lf", A[i]);
    printf("\n");
    system("pause");
    return 0;
}
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
05.07.2019, 07:32
Andrey B, советую обращать внимания на предупреждения компилятора,
например
Цитата Сообщение от Andrey B Посмотреть сообщение
float summa(float *A, int n)
{
int sum = 0,
...
return sum;
Аналогично
Цитата Сообщение от Andrey B Посмотреть сообщение
void sort(float *A, int n)
{
int tmp,
И тип float устарел. Используйте double.
0
 Аватар для eva2326
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,518
05.07.2019, 12:34
Цитата Сообщение от zss Посмотреть сообщение
И тип float устарел. Используйте double.
Да неужели?
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.07.2019, 12:34
Помогаю со студенческими работами здесь

Почему один и тот-же код в WindowsForms работает, а в Web не работает?
Здравствуйте, подскажите почему один и тот-же код в WindowsForms работает, а в Web не работает. Код WindowsForms: namespace...

Простейший код работает в MS IE, почему не работает в Mozilla, FireFox?
Приветствую. Вот собственно код: &lt;html&gt; &lt;head&gt;&lt;/head&gt; &lt;body&gt; &lt;input type=&quot;button&quot; value=&quot;set 1&quot; ...

Почему не работает код на других компьютерах (на моем работает)?
вот задание: построить ф-ю: на вход поступают 2 строки, на выходе 1 строка, по следующим правилам: в 1 строке удваиваются все гласные,...

Не работает код js, почему ? Код внутри
Короче есть форма и js файлик с функциями, ф-я при клике проверяет написано ли там 'Введите имя', если да то удаляет текст, так вот она...

Почему не работает код?
private void Form1_Load(object sender, EventArgs e) { int n=19; StreamReader z = new...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru