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

Warning C4700: использована неинициализированная локальная переменная - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Warezovvv
 Аватар для Warezovvv
9 / 9 / 2
Регистрация: 09.12.2012
Сообщений: 219
24.04.2013, 17:02     Warning C4700: использована неинициализированная локальная переменная #1
Я прекрасно понимаю что это значит но проблема в том что я сначала прогу написал в мэйне, а потом начал засовывать в функцию этот кусок.
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
#include <iostream>
#include <math.h>
#include <iomanip>
#include <clocale>
using namespace std;
void validcin(double &ch);
double podshet(double x,double Xstart,double Xend,double dx,double realF,int cnt,double f,double e);
 
int main(){
double Xstart,Xend,dx,x,e,f,realF;
int cnt;
setlocale(LC_ALL,"rus");
//----------
cout<<"Введите x начальное (-1<=x<=1)= ";cin>>Xstart;
validcin(Xstart);
//----------
cout<<"Введите x конечное = ";cin>>Xend;
validcin(Xend);
//----------
cout<<"Введите E = ";cin>>e;
//----------
cout<<"Введите шаг = ";cin>>dx;
 
//----------
cout<<"\t Таблица значений F\n";
cout<<"   X   |      F     | n |  ln(1-x) ";
cout<<endl;
//---------
podshet(x,Xstart,Xend,dx,realF,cnt,f,e);
//---------
 cout<<setw(6)<<setprecision(2)<<x<<" | "<<setw(10)<<setprecision(7)<<f<<" | ";
 cout<<setw(3)<<cnt<<" | "<<setw(10)<<setprecision(7)<<realF<<endl;
 
//----------
return 0;
}
 
void validcin(double &ch){
    while (cin.fail() || ch<-1|| 1<ch)
        {
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max() , '\n');
        cout<<"Повторите ввод:";
        cin>>ch;
    }
}
 
double podshet(double x,double Xstart,double Xend,double dx,double realF,int cnt,double f,double e){
     
    for(x=Xstart;x<=Xend; x+=dx)
    {
  f = 0;
  realF = log(1-x);
  cnt = 0;
  while(fabs(realF-f)>e)
  {
    cnt++;
    f -= pow(x,cnt)/cnt;
  }
    }
return x,f,cnt,realF;}
Как решить данную проблему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2013, 17:02     Warning C4700: использована неинициализированная локальная переменная
Посмотрите здесь:

Warning C4700: использована неинициализированная локальная переменная "matrix" C++
Error C4700: использована неинициализированная локальная переменная C++
C++ Использована неинициализированная локальная переменная
C++ Error C4700: использована неинициализированная локальная переменная "k"
C++ Warning C4700: использована неинициализированная локальная переменная
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
24.04.2013, 17:08     Warning C4700: использована неинициализированная локальная переменная #2
Warezovvv, Вы думаете это
C++
1
return x,f,cnt,realF;
позволит вернуть из функции 4 параметра? Отнюдь.
Цитата Сообщение от Warezovvv Посмотреть сообщение
я сначала прогу написал в мэйне
Покажите, что было сначала. Может быть это прояснит, что должно получиться в итоге. А вообще, озвучьте задание.
Warezovvv
 Аватар для Warezovvv
9 / 9 / 2
Регистрация: 09.12.2012
Сообщений: 219
24.04.2013, 17:14  [ТС]     Warning C4700: использована неинициализированная локальная переменная #3
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
#include <iostream>
#include <math.h>
#include <iomanip>
#include <clocale>
using namespace std;
void validcin(double &ch);
 
int main(){
double Xstart,Xend,x,dx,e,f,realF;
int cnt;
setlocale(LC_ALL,"rus");
//----------
cout<<"Введите x начальное (-1<=x<=1)= ";cin>>Xstart;
validcin(Xstart);
//----------
cout<<"Введите x конечное = ";cin>>Xend;
validcin(Xend);
//----------
cout<<"Введите E = ";cin>>e;
//----------
cout<<"Введите шаг = ";cin>>dx;
 
//----------
cout<<"\t Таблица значений F\n";
cout<<"   x   |      F     | cnt |  ln(1-x) ";
cout<<endl;
//----------
for(x=Xstart;x<=Xend; x+=dx)
 {
  f = 0;
  realF = log(1-x);
  cnt = 0;
  //----------
  while(fabs(realF-f)>e)
   {
    cnt++;
    f -= pow(x,cnt)/cnt;
   }
  //----------
 cout<<setw(6)<<setprecision(2)<<x<<" | "<<setw(10)<<setprecision(7)<<f<<" | ";
 cout<<setw(3)<<cnt<<" | "<<setw(10)<<setprecision(7)<<realF<<endl;
 }
//----------
return 0;
}
 
void validcin(double &ch){
    while (cin.fail() || -1<ch<1)
        {
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max() , '\n');
        cout<<"Повторите ввод:";
        cin>>ch;
    }
}
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
24.04.2013, 17:36     Warning C4700: использована неинициализированная локальная переменная #4
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
#include <iostream>
#include <math.h>
#include <iomanip>
#include <clocale>
using namespace std;
 
void validcin(double &ch);
 
double calc( double x, int& cnt, double& realF, double e )
{
    double f = 0;
    realF = log(1-x);
    cnt = 0;
    while(fabs(realF-f)>e)
    {
        cnt++;
        f -= pow(x,cnt)/cnt;
    }
 
    return f;
}
 
int main()
{
    double Xstart,Xend,dx,e;
    
    setlocale(LC_ALL,"rus");
    //----------
    cout<<"Введите x начальное (-1<=x<=1)= ";cin>>Xstart;
    validcin(Xstart);
    //----------
    cout<<"Введите x конечное = ";cin>>Xend;
    validcin(Xend);
    //----------
    cout<<"Введите E = ";cin>>e;
    //----------
    cout<<"Введите шаг = ";cin>>dx;
 
    //----------
    cout<<"\t Таблица значений F\n";
    cout<<"   x   |      F     | cnt |  ln(1-x) ";
    cout<<endl;
 
    for(double x=Xstart;x<=Xend; x+=dx)
    {
        int cnt;
        double realF;
        double f = calc( x, cnt, realF, e );
        
        cout<<setw(6)<<setprecision(2)<<x<<" | "<<setw(10)<<setprecision(7)<<f<<" | ";
        cout<<setw(3)<<cnt<<" | "<<setw(10)<<setprecision(7)<<realF<<endl;
    }
    //----------
    return 0;
}
 
void validcin(double &ch)
{
    while(cin.fail() || ch<-1 || ch>1 )
    {
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max() , '\n');
        cout<<"Повторите ввод:";
        cin>>ch;
    }
}
Yandex
Объявления
24.04.2013, 17:36     Warning C4700: использована неинициализированная локальная переменная
Ответ Создать тему
Опции темы

Текущее время: 11:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru