Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/140: Рейтинг темы: голосов - 140, средняя оценка - 4.64
5 / 5 / 5
Регистрация: 20.11.2010
Сообщений: 173
1

Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized.

10.03.2012, 23:06. Показов 25760. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
int fun_mult(int *mas)
{
    int zero;
    
    for (int i=0; i<10; i++){
        if (mas[i]=0)
        zero=i;
        else break;
        
    }
    return zero;
}
в чем фейл?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2012, 23:06
Ответы с готовыми решениями:

Ошибка Run-Time Check Failure #3 - The variable 'y' is being used without being initialized
Выскакивает вот тавкая вот ошибка, подскажите как исправить. Ошибка выскакивает, когда я ввожу...

Ошибка: Run-time check failure: variable 'C' is being used without being initialized
Здравствуйте, Помогите решить одну проблему. Есть задание написать программу, которая находит...

Ошибка Run-Time Check Failure #3 - The variable 'k' is being used without being initialized
2. Даны два вектора и найти угол между ними и модуль векторного произведения векторов X и Y. При...

Ошибка: Run-Time Check Failure #3 - The variable 'i' is being used without being initialized
в чём ошибка (просьба подправить) #include &quot;stdafx.h&quot; #include &lt;math.h&gt; #include &lt;iostream&gt;...

18
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
10.03.2012, 23:12 2
Цитата Сообщение от m1x Посмотреть сообщение
C++
1
2
3
if (mas[i]=0)
    zero=i;
else break;
На первой же итерации пойдет по ветке else, как следствие получим возвращение неинициализированной переменной.
0
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
10.03.2012, 23:12 3
m1x, в том что условие ни разу не выполнилось (поскольку ты написал равно вместо == ) и переменная zero осталось неиницилизированной
0
58 / 58 / 6
Регистрация: 10.07.2011
Сообщений: 229
10.03.2012, 23:14 4
А я исправленный код напишу
C++
1
2
3
4
5
6
7
8
9
10
11
12
int fun_mult(int *mas)
{
        int zero;
        
        for (int i=0; i<10; i++){
                if (mas[i]==0)
                zero=i;
                else break;
                
        }
        return zero;
}
0
5 / 5 / 5
Регистрация: 20.11.2010
Сообщений: 173
10.03.2012, 23:14  [ТС] 5
Цитата Сообщение от sandye51 Посмотреть сообщение
m1x, в том что условие ни разу не выполнилось (поскольку ты написал равно вместо == ) и переменная zero осталось неиницилизированной
спасибо, но ошибка осталась
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
10.03.2012, 23:14 6
Mustik, а если там не будет нуля?
0
5 / 5 / 5
Регистрация: 20.11.2010
Сообщений: 173
10.03.2012, 23:15  [ТС] 7
Цитата Сообщение от Mustik Посмотреть сообщение
А я исправленный код напишу
C++
1
2
3
4
5
6
7
8
9
10
11
12
int fun_mult(int *mas)
{
        int zero;
        
        for (int i=0; i<10; i++){
                if (mas[i]==0)
                zero=i;
                else break;
                
        }
        return zero;
}
аналогично
та же ошибка
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
10.03.2012, 23:21 8
Цитата Сообщение от m1x Посмотреть сообщение
int zero;
C++
1
int zero(-1);
0
5 / 5 / 5
Регистрация: 20.11.2010
Сообщений: 173
10.03.2012, 23:23  [ТС] 9
для проверки сделал так
C++
1
2
3
4
5
6
7
8
9
10
11
12
int fun_mult(int *mas)
{
        int zero;
        
        for (int i=0; i<10; i++){
                if (mas[i]==0)
                zero=i;
                else zero=1111111;
                
        }
        return zero;
}
ввожу массив (с элементом равным нулю конечно же) и всегда получаю ответ 1111111
неправильно работает

Добавлено через 37 секунд
Цитата Сообщение от soon Посмотреть сообщение
C++
1
int zero(-1);
это как?
з.ы. все так же неправильно работает
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
10.03.2012, 23:24 10
m1x, сообщение #8 гляньте. А выводит 1111111 потому, что break нет.
0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
10.03.2012, 23:24 11
m1x, просто какое-то значение нужно изначально zero задать.
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
10.03.2012, 23:25 12
Цитата Сообщение от m1x Посмотреть сообщение
это как?
А вот прямо так и запишите
0
58 / 58 / 6
Регистрация: 10.07.2011
Сообщений: 229
10.03.2012, 23:26 13
Цитата Сообщение от m1x Посмотреть сообщение
аналогично
та же ошибка
Переменную zero нужно инициализировать.
Товарищ soon уже написал как это делается. Его запись аналогична
C++
1
int zero = -1;
.
А вам повезло, нашли еще одну с = вместо == .
0
5 / 5 / 5
Регистрация: 20.11.2010
Сообщений: 173
10.03.2012, 23:28  [ТС] 14
где break должен стоять?
0
58 / 58 / 6
Регистрация: 10.07.2011
Сообщений: 229
10.03.2012, 23:28 15
Цитата Сообщение от m1x Посмотреть сообщение
ввожу массив (с элементом равным нулю конечно же) и всегда получаю ответ 1111111
Так если у тебя последний элемент не будет равен 0, то zero будет равно 111111.
Может быть надо
C++
1
2
3
4
5
6
...
else
{
    zero = 111111;
    break;
}
0
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
10.03.2012, 23:29 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
#include <iostream>
#include <cstdlib>
#include <clocale>
 
template <typename T>
int find_zero(const T* array, unsigned int size)
{
    T test = T();
    
    for (unsigned int i = 0; i < size; ++i)
        if (array[i] == test)
            return static_cast<int>(i);
    
    return -1;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int array[] = {1, 2, -1, 0, 1};
    
    int index = find_zero(array, sizeof(array) / sizeof(int));
    if (index >= 0)
        std::cout << "Ответ: " << index << std::endl;
    else
        std::cout << "В массиве нет нулевых элементов" << std::endl;
    
    system("Pause");
    return EXIT_SUCCESS;
}
ответ: 3
0
5 / 5 / 5
Регистрация: 20.11.2010
Сообщений: 173
10.03.2012, 23:32  [ТС] 17
написал так:
C++
1
2
3
4
5
6
7
8
9
10
11
int fun_mult(int *mas)
{
        int zero=-1;
        
        for (int i=0; i<10; i++){
                if (mas[i]==0)
                zero=i;                
                
        }
        return zero;
}
но в случае если в массиве два нуля, то выводит номер последнего из них
а нужно чтобы выводило номер первого
где-то должен быть break
0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
10.03.2012, 23:34 18
C++
1
2
3
4
5
6
7
8
9
10
11
12
int fun_mult(int *mas)
{
        int zero=-1;
        
        for (int i=0; i<10; i++){
                if (mas[i]==0)
                {
                  zero=i;                
                  break;
                }
        }
        return zero;
1
5 / 5 / 5
Регистрация: 20.11.2010
Сообщений: 173
10.03.2012, 23:35  [ТС] 19
Цитата Сообщение от BumerangSP Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
int fun_mult(int *mas)
{
        int zero=-1;
        
        for (int i=0; i<10; i++){
                if (mas[i]==0)
                {
                  zero=i;                
                  break;
                }
        }
        return zero;
благодарю


всем спасибо
0
10.03.2012, 23:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2012, 23:35
Помогаю со студенческими работами здесь

Ошибка Run-Time Check Failure #3 - The variable 'chcount' is being used without being initialized.
Run-Time Check Failure #3 - The variable 'chcount' is being used without being initialized. Что...

Run-Time Check Failure #3 - The variable 's' is being used without being initialized
Ребят в чем может быть косяк запарился уже. Выдает эту ошибку я хз что с ней делать:( #include...

Run-Time Check Failure #3 - The variable 'i' is being used without being initialized
#include &quot;stdafx.h&quot; #include &quot;cstdlib&quot; #include &quot;cstring&quot; #include &quot;iostream&quot; using...

Run-Time Check Failure #3 - The variable 'k' is being used without being initialized
Дано целое число n&gt;1 . Найти наименьшее целое число k , при котором выполняется неравенство k&gt;n^2+n...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru