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

Код не работает вне Visual Studio?

06.12.2016, 19:41. Показов 1655. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Написал код и при компиляции VS, код работает исправно.
Но стоит запустить файл отдельно, как программа пропускает часть кода.
Что делать и почему так происходит?
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
 
 
    int counter, sum, N;
    char choose;
    counter = 0;
    sum = 0;
 
    cout << "Введите колличество элементов: ";
    cin >> N;
 
        if(N>50)
        {
            cout << "Ограничение на 50 ячеек" << endl;
            N = 50;
        }
 
    int *arr = new int[N];
 
    //const int N = 5;
 
    //int arr[N];
                        
 
 
    for(int i; i < N; i++)
    {
        counter++;
        cout << "Введите число в массив № " << i+1 << "  ";
        cin >> arr[i];
        if(counter == 3)
        {
            system("cls");
            counter = 0;
        }
    }
    counter = 0;
    system("cls");
 
    cout << "Что хотите сделать: " << endl;
    cout << "1.Вывести значения всех массивов" << endl;
    cout << "2.Найти максимальное и минимальное число в массиве" << endl;
    cout << "3.Произвести сортировку по возрастанию" << endl;
    cout << "4.Найти сумму всех  чисел в массиве" << endl;
    cout << "5.Найти сумму нечетных чисел" << endl;
    cout << "6.Найти сумму нечетных чисел" << endl;
    cout << "7.Вывести значение ячейки массива" << endl;
 
    cout << "Введите пункт: ";
    cin >> choose;
    system("cls");
                        /////////////NEW CODE////////////////
 
 
    switch(choose)
    {
                    ////////////CASE 1///////////
    case '1':
        for(int i; i<N; i++)
        {
            cout << "Значения массивов: " << arr[i] << endl;
 
        }
    break;
                    ////////////CASE 3///////////
    case '3':
        for(int i=1; i<N; i++)
        {
            for(int j=0; j<N; j++)
            {
                if(arr[j] > arr[j+1])
                {
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        for(int i; i <N; i++)
        {
            cout << "Сортировка по возрастанию: " << arr[i] << endl;
        }
    break;
                    ////////////CASE 4///////////
 
    case '4': 
            for(int i; i<N; i++)
            {
                sum += arr[i];
            }
 
            cout << "Сумма всех чисел в массиве: " << sum << endl;
    break;
                        ////////////CASE 5///////////
    case '5': 
            for(int i; i<N; i++)
            {
                if(arr[i]%2!=0)
                {
                sum += arr[i];
                }
            }
 
            cout << "Сумма нечетных чисел: " << sum << endl;
    break;
                      ////////////CASE 6///////////
    case '6': 
            for(int i; i<N; i++)
            {
                if(arr[i]%2==0)
                {
                sum += arr[i];
                }
            }
 
            cout << "Сумма четных чисел: " << sum << endl;
    break;
                          ////////////CASE 7///////////
    case '7': 
                
        int cell;
        cout << "Введите номер ячейки: ";
        cin >> cell;
 
        if(cell>=0 && cell <N)
        {
            cout << "Число в ячейке: " << arr[cell] << endl;
        }
        else
        {
            cout << "Такой ячейки не сущевствует." << endl;
        }
    break;
                    ////////////CASE 2///////////
    case '2':
    int max = arr[0], min = arr[0];
        for(int i; i<N; i++)
        {
            if(max < arr[i])
            {
                max = arr[i];
            }
            if (min > arr[i])
            {
                min = arr[i];
            }
 
        }
    cout << "Наибольшее значение: " << max << endl;
    cout << "Наименьшее значение: " << min << endl;
        
    break;
    
 
    }
    system("pause");
    return 0;
}
Добавлено через 1 минуту
ПС.
Извиняюсь за качество кода, учусь в радиотехническом техникуме и программирование является моим новым увлечением.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.12.2016, 19:41
Ответы с готовыми решениями:

Не работает код в visual studio 2013
Код C++ Построение прямой по двум точкам. Вывести уравнение прямой на экран ================= #include &lt;stdlib.h&gt; #include...

Не работает код С++ (Visual Studio 2008)
Вобщем нужно было составить программу для вычисления значения функции с использованием сложной структуры разветвления. Данные вводятся с...

Код работает в Dev-C++, а надо в Visual Studio
Код:#include &lt;stdio.h&gt; #include &lt;string&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; #define LINE &quot;\n ...

8
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
06.12.2016, 20:03
Цитата Сообщение от Photofenix Посмотреть сообщение
как программа пропускает часть кода.
Какую часть?

Добавлено через 13 минут
Результат компиляции твоего кода:
1>------ Построение начато: проект: Build, Конфигурация: Debug Win32 ------
1> main.cpp
1>d:\my c++projects\build\main.cpp(32): warning C4700: использована неинициализированная локальная переменная "i"
1>d:\my c++projects\build\main.cpp(65): warning C4700: использована неинициализированная локальная переменная "i"
1>d:\my c++projects\build\main.cpp(85): warning C4700: использована неинициализированная локальная переменная "i"
1>d:\my c++projects\build\main.cpp(93): warning C4700: использована неинициализированная локальная переменная "i"
1>d:\my c++projects\build\main.cpp(102): warning C4700: использована неинициализированная локальная переменная "i"
1>d:\my c++projects\build\main.cpp(114): warning C4700: использована неинициализированная локальная переменная "i"
1>d:\my c++projects\build\main.cpp(143): warning C4700: использована неинициализированная локальная переменная "i"
1> LINK : не найден или не выполнена сборка D:\MY C++Projects\Build\Debug\Build.exe при последней инкрементной компоновке; выполняется полная компоновка
1> Build.vcxproj -> D:\MY C++Projects\Build\Debug\Build.exe
========== Построение: успешно: 1, с ошибками: 0, без изменений: 0, пропущено: 0 ==========
Ты на предупреждения внимания не обращаешь? Или как?
1
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
06.12.2016, 20:06  [ТС]
Конкретно вот эту часть кода
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
 cout << "Введите колличество элементов: ";
    cin >> N;
 
        if(N>50)
        {
            cout << "Ограничение на 50 ячеек" << endl;
            N = 50;
        }
 
    int *arr = new int[N];
 
    //const int N = 5;
 
    //int arr[N];
                        
 
 
    for(int i; i < N; i++)
    {
        counter++;
        cout << "Введите число в массив № " << i+1 << "  ";
        cin >> arr[i];
        if(counter == 3)
        {
            system("cls");
            counter = 0;
        }
    }
    counter = 0;
    system("cls");

Использована неинициализированная локальная переменная "i". Это что-то новенькое, и как правильно исправить это?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
06.12.2016, 20:19
Цитата Сообщение от Photofenix Посмотреть сообщение
и как правильно исправить это?
Задать начальное значение.
1
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
06.12.2016, 20:25  [ТС]
C++
1
2
3
4
5
   int counter, sum, N;
    char choose;
    int i; // Верно? =)
    counter = 0;
    sum = 0;
Попробую

Добавлено через 2 минуты
Нет, не работает. Все так же ошибка.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
06.12.2016, 20:26
Цитата Сообщение от Photofenix Посмотреть сообщение
int i; // Верно? =)
Нет. Значение какое, после этого, у i ?
1
 Аватар для Nishen
1357 / 856 / 365
Регистрация: 26.02.2015
Сообщений: 3,813
06.12.2016, 20:27
Лучший ответ Сообщение было отмечено Photofenix как решение

Решение

Проблема в том, что при определении переменной (не глобальной), она не инициализируется значением. Вы тут
Цитата Сообщение от Photofenix Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
for(int i; i < N; i++)
* * {
* * * * counter++;
* * * * cout << "Введите число в массив № " << i+1 << " *";
* * * * cin >> arr[i];
* * * * if(counter == 3)
* * * * {
* * * * * * system("cls");
* * * * * * counter = 0;
* * * * }
* * }
ожидаете, что цикл пройдет все значения массива от 0-ого, до N-ого. Но и имеет неопределенное значение, но не 0. Поэтому стоит задать это значение самому в момент определения переменной.
1
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
06.12.2016, 20:34
Лучший ответ Сообщение было отмечено Photofenix как решение

Решение

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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
 
 
    int counter, sum, N;
    char choose;
    counter = 0;
    sum = 0;
 
    cout << "Введите колличество элементов: ";
    cin >> N;
 
        if(N>50)
        {
            cout << "Ограничение на 50 ячеек" << endl;
            N = 50;
        }
 
    int *arr = new int[N];
 
    //const int N = 5;
 
    //int arr[N];
                        
 
 
    for(int i = 0; i < N; i++)
    {
        counter++;
        cout << "Введите число в массив № " << i+1 << "  ";
        cin >> arr[i];
        if(counter == 3)
        {
            system("cls");
            counter = 0;
        }
    }
    counter = 0;
    system("cls");
 
    cout << "Что хотите сделать: " << endl;
    cout << "1.Вывести значения всех массивов" << endl;
    cout << "2.Найти максимальное и минимальное число в массиве" << endl;
    cout << "3.Произвести сортировку по возрастанию" << endl;
    cout << "4.Найти сумму всех  чисел в массиве" << endl;
    cout << "5.Найти сумму нечетных чисел" << endl;
    cout << "6.Найти сумму нечетных чисел" << endl;
    cout << "7.Вывести значение ячейки массива" << endl;
 
    cout << "Введите пункт: ";
    cin >> choose;
    system("cls");
                        /////////////NEW CODE////////////////
 
 
    switch(choose)
    {
                    ////////////CASE 1///////////
    case '1':
        for(int i = 0; i<N; i++)
        {
            cout << "Значения массивов: " << arr[i] << endl;
 
        }
    break;
                    ////////////CASE 3///////////
    case '3':
        for(int i=1; i<N; i++)
        {
            for(int j=0; j<N; j++)
            {
                if(arr[j] > arr[j+1])
                {
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        for(int i = 0; i <N; i++)
        {
            cout << "Сортировка по возрастанию: " << arr[i] << endl;
        }
    break;
                    ////////////CASE 4///////////
 
    case '4': 
            for(int i = 0; i<N; i++)
            {
                sum += arr[i];
            }
 
            cout << "Сумма всех чисел в массиве: " << sum << endl;
    break;
                        ////////////CASE 5///////////
    case '5': 
            for(int i = 0; i<N; i++)
            {
                if(arr[i]%2!=0)
                {
                sum += arr[i];
                }
            }
 
            cout << "Сумма нечетных чисел: " << sum << endl;
    break;
                      ////////////CASE 6///////////
    case '6': 
            for(int i = 0; i<N; i++)
            {
                if(arr[i]%2==0)
                {
                sum += arr[i];
                }
            }
 
            cout << "Сумма четных чисел: " << sum << endl;
    break;
                          ////////////CASE 7///////////
    case '7': 
                
        int cell;
        cout << "Введите номер ячейки: ";
        cin >> cell;
 
        if(cell>=0 && cell <N)
        {
            cout << "Число в ячейке: " << arr[cell] << endl;
        }
        else
        {
            cout << "Такой ячейки не сущевствует." << endl;
        }
    break;
                    ////////////CASE 2///////////
    case '2':
    int max = arr[0], min = arr[0];
        for(int i = 0; i<N; i++)
        {
            if(max < arr[i])
            {
                max = arr[i];
            }
            if (min > arr[i])
            {
                min = arr[i];
            }
 
        }
    cout << "Наибольшее значение: " << max << endl;
    cout << "Наименьшее значение: " << min << endl;
        
    break;
    
 
    }
    system("pause");
    return 0;
}
1
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
06.12.2016, 20:51  [ТС]
Понял свою ошибку, все работает, спасибо за консультацию!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.12.2016, 20:51
Помогаю со студенческими работами здесь

Не работает код в Microsoft Visual Studio 2017
Код С++ в MVS работает некоректно, в консоль выдает то чего уже не написано в коде, из прошлых сохранений, при этом выдает ошибку ...

WTF не работает простой код на Visual studio 2008(баг?)
Взял код из википедии. ...

Почему в одних IDE код работает, а в других нет? (Visual Studio vs DevC++)
Есть простой код, который находит максимальное значение в массиве. Но есть странность одна: 1)На Visual Studio программа работает...

Код не работает в 2008 версии visual studio, но работает в 2005
Добрый день. Писала на университетском компьютере программу, считывающую данные из файла в список структур. Там стоит 2005 версия, и всё...

Код не работает в visual studio 2012
Незнаю почему но этот код не работает в visual studio 2012, как исправить, но дома 2017 версия и работает! using System; using...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru