Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 82, средняя оценка - 4.90
Leningradeс
10 / 10 / 1
Регистрация: 03.03.2011
Сообщений: 331
#1

Неинициализированные локальные переменные - C++

03.03.2011, 23:34. Просмотров 11668. Ответов 21
Метки нет (Все метки)

Меня интересует как обходить данные ошибки. В чем соль ошибок?
Проблема даже не в том что они есть, а то что компилятор останавливается и предлагает "продолжить" или "прервать" компиляцию, конечно если жать продолжить то программа выполняет код (в моём случае цикла) и выдаёт совершенно "не результат вычислений" а -1.#INFOO и -1.#INDOO что это означает??

1>c:\documents and settings\admin\мои документы\visual studio 2010\projects\kyrsovik\kyrsovik\module2.cpp(37): warning C4700: использована неинициализированная локальная переменная "y"
1>c:\documents and settings\admin\мои документы\visual studio 2010\projects\kyrsovik\kyrsovik\module2.cpp(39): warning C4700: использована неинициализированная локальная переменная "i"
1>c:\documents and settings\admin\мои документы\visual studio 2010\projects\kyrsovik\kyrsovik\module2.cpp(40): warning C4700: использована неинициализированная локальная переменная "sum"
Заранее благодарю за ответы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2011, 23:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Неинициализированные локальные переменные (C++):

Неинициализированные локальные переменные warning C4700 - C++
// Laboratornaa.cpp: определяет точку входа для консольного приложения. // #include"stdafx.h" #include<iostream> ...

Неинициализированные переменные - C++
пишет типа не инициализированы d1 и d2,хотя они объявлены#include "iostream" using namespace std; struct Distance { int feet; ...

Ошибка: неинициализированные переменные - C++
Требовалось оформить класс ORDER, ошибка на 103-ей строке про неинициализированные переменные, помогите исправить. #include...

Ошибка, указывающая на неинициализированные переменные - C++
#include <iostream> #include <Windows.h> using namespace std; int main() { setlocale(0, ""); int a; cout << "введите число...

Локальные переменные - C++
#include <iostream.h> #include <conio.h> // по объявлению библиотек сразу видно компилятор старый такчто ветераны с++ помогите ...

Неиспользуемые локальные переменные - C++
Добрый день. Напомните, пожалуйста, вот что. Имеем, например: void MyClass::myFunc() { SomeClass *cls = new SomeClass(); ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
20.04.2012, 20:25 #16
Цитата Сообщение от Валя007 Посмотреть сообщение
Проблема с warning C4700: использована неинициализированная локальная переменная "mas"
Дело в том, что вы инициализируете переменную sum первым элементом массива mas, которому ещё не присвоены никакие значения. Объявите и инициализируйте sum уже после ввода элементов массива.
Валя007
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 23
22.04.2012, 21:12 #17
long int mas[9]; // объявляем целочисленный массив

cout << "Enter elementi massiva: " << endl;
for ( int i = 0; i <10; i++ ) // цикл для считывания чисел
cin >> mas[i]; // считываем вводимые с клавиатуры числа
cout << "mas = {";
for ( int i = 0; i<10; i++ ) // цикл для вывода элементов массива
cout << mas[i] << " "; // выводим элементы массива на стандартное устройство вывода
int sum=0;
for ( int i = 9; i<=0; i-- )
for ( int j = 1; j<i-1; j++ )
{ if (mas[i]> mas[j])
sum=sum+mas[i];}; // суммируем элементы массива
cout << "}\nsum = " << sum << endl;
}

не работает. посмотрите пожалуйста
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
22.04.2012, 22:42 #18
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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    cout << "Lab 11" << endl;
 
    const int n = 10;
    int mas[n]; // объявляем целочисленный массив
 
    cout << "Enter elementi massiva: " << endl;
    for(int i = 0; i < n; i++) // цикл для считывания чисел
        cin >> mas[i]; // считываем вводимые с клавиатуры числа
 
    cout << "mas = {";
    for(int i = 0; i < n; i++) // цикл для вывода элементов массива
        cout << mas[i] << " "; // выводим элементы массива на стандартное устройство вывода
 
    int sum = mas[0];
 
    for(int i = 1; i < n; i++)
    {
        for(int j = 0; j < i; j++)
            if(mas[j] >= mas[i]) // если текущему элементу предшествует большее либо равное значение,..  
                goto SKIP_SUM_LABEL; // ...переходим к метке SKIP_SUM_LABEL, тем самым пропуская суммирование
 
        sum = sum + mas[i]; // суммируем элементы массива
 
    SKIP_SUM_LABEL:;
    }
    
    cout << "}\nsum = " << sum << endl;
 
    return 0;
}
Валя007
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 23
23.04.2012, 17:32 #19
А без goto никак??(((

без него можно сделать? просто мы его не проходили
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
23.04.2012, 17:50 #20
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for(int i = 1; i < n; i++)
{
    bool skip_sum = false;
    for(int j = 0; j < i; j++)
    {
        if(mas[j] >= mas[i])
        {
            skip_sum = true;
            break;
        }
    }
 
    if(skip_sum == false)
        sum = sum + mas[i]; 
}
Валя007
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 23
23.04.2012, 23:03 #21
не работает, sum неинициализированная переменная
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
25.04.2012, 14:11 #22
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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    cout << "Lab 11" << endl;
 
    const int n = 10;
    int mas[n]; // объявляем целочисленный массив
 
    cout << "Enter elementi massiva: " << endl;
    for(int i = 0; i < n; i++) // цикл для считывания чисел
        cin >> mas[i]; // считываем вводимые с клавиатуры числа
 
    cout << "mas = {";
    for(int i = 0; i < n; i++) // цикл для вывода элементов массива
        cout << mas[i] << " "; // выводим элементы массива на стандартное устройство вывода
 
    int sum = mas[0];
 
    for(int i = 1; i < n; i++)
    {
        bool skip_sum = false;
        for(int j = 0; j < i; j++)
        {
            if(mas[j] >= mas[i])
            {
                skip_sum = true;
                break;
            }
        }
 
        if(skip_sum == false)
            sum = sum + mas[i]; 
    }
 
    cout << "}\nsum = " << sum << endl;
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2012, 14:11
Привет! Вот еще темы с ответами:

Локальные переменные-классы - C++
есть такой код #include &lt;iostream&gt; using namespace std; class My_vector{ friend ostream &amp;operator&lt;&lt;(ostream &amp;,const My_vector...

С++ ООП локальные переменные - C++
Есть розмерность для матрицы n i m, если я ввожу их в функции create, то уже функция print их не видит.я понимаю что они локальные, как же...

Локальные переменные в функции и её аргумент - C++
Привет! Пишу функцию перевода десятичного числа в текст (не обсуждайте зачем и правильно ли я делаю) Суть такова, начало функции: ...

Variadic templates локальные переменные - C++
Еще один вопрос по Variadic templates. Решаю следующую задачу: Необходимо сохранить в памяти функцию с набором параметров для...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.04.2012, 14:11
Ответ Создать тему
Опции темы

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