2014-04-09 302 views
0

我在C++中编译的程序有问题。我写了一个程序,当我键入程序的东西我立即收到此消息:程序已停止工作

http://abload.de/image.php?img=hweteu89.png

以下是译文:

程序已停止工作

一个问题引起该程序正常工作。 Windows将关闭该程序并通知您是否有解决方案。

这里是我的源代码:

#include <cstdlib> 
#include <iostream> 
#include <fstream> 

using namespace std; 

int main(int argc, char *argv[]) 
{float SLN,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R123,R23,R1234,R12345,R78,R678,R12345678,Rg,Uq=12+(SLN*0,1),Ig,I10,I9,I12345678,I12345,I678,U10,I6,U6,U78=I678*R78,I7,I8,U12345,U1234=U12345,U5=U12345,I1234,U123,U4,I5,U1=U123,I1,U2,U3,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,M,I2,I3=I2,I4=U4/R4,U7=U78,U8=U78,U9=I9*R9,Pg,Pg1; 
cout<<"Bitte geben sie die Schülerlistennumer ein."<<endl; 
cin>>SLN;//SLN eingeben 



//Widerstandsvariablen definieren 
R1=100; 
R2=200; 
R4=400; 
R5=500; 
R7=700; 
R8=800; 
R10=1000; 

//Widerstände berechnen 

R3=SLN*25; 
R6=1000-(SLN*15); 
R9=SLN*20; 
R23=R2+R3; 
R123=(R23*R1)/(R23+R1); 
R1234=R123+R4; 
R12345=(R1234*R5)/(R1234+R5); 
R78=(R7*R8)/(R7+R8); 
R678=R6+R78; 
R12345678=R12345+R678; 
Rg=1/((1/R12345678)+(1/R9)+(1/R10)); 

//Ströme berechnen 
Ig=Uq/Rg; 
I10=Uq/R10; 
I9=Uq/R9; 
I12345678=Uq/R12345678; 
I12345=I12345678; 
I678=I12345678; 
I6=I678; 
I7=U78/R7; 
I8=U78/R8; 
I1234=U1234/R1234; 
I5=U5/R5; 
I1=U1/R1; 
I2=I12345678; 


U10=I10*R10; 
U6=I6*R6; 
U12345=I12345*R12345; 
U123=I1234*R123; 
U4=I1234*R4; 
U2=R2*I12345678; 
U3=R3*I12345678; 


//Leistungen berechnen 
P1=I1*U1; 
P2=I2*U2; 
P3=I3*U3; 
P4=I4*U4; 
P5=I5*U5; 
P6=I6*U6; 
P7=I7*U7; 
P8=I8*U8; 
P9=I9*U9; 
P10=I10*U10; 
Pg=Uq*Ig; 
Pg1=P1+P2+P3+P4+P5+P6+P7+P8+P9+P10; 




//Variablen ausgeben(Spannung) 
cout<<"Die spannung U1 betraegt"<<U1<<"Volt."<<endl; 
cout<<"Die spannung U2 beträgt"<<U2<<"Volt."<<endl; 
cout<<"Die spannung U3 betraegt"<<U3<<"Volt."<<endl; 
cout<<"Die spannung U4 betraegt"<<U4<<"Volt."<<endl;  
cout<<"Die spannung U5 betraegt"<<U5<<"Volt."<<endl; 
cout<<"Die spannung U6 betraegt"<<U6<<"Volt."<<endl; 
cout<<"Die spannung U7 betraegt"<<U7<<"Volt."<<endl; 
cout<<"Die spannung U8 betraegt"<<U8<<"Volt."<<endl; 
cout<<"Die spannung U9 betraegt"<<U9<<"Volt."<<endl; 
cout<<"Die spannung U10 betraegt"<<U10<<"Volt."<<endl; 

//Variablen ausgeben (Strom) 
cout<<"Der Strom I1 betraegt"<<I1<<"Ampere."<<endl; 
cout<<"Der Strom I2 betraegt"<<I2<<"Ampere."<<endl; 
cout<<"Der Strom I3 betraegt"<<I3<<"Ampere."<<endl; 
cout<<"Der Strom I4 betraegt"<<I5<<"Ampere."<<endl; 
cout<<"Der Strom I5 betraegt"<<I5<<"Ampere."<<endl; 
cout<<"Der Strom I6 betraegt"<<I6<<"Ampere."<<endl; 
cout<<"Der Strom I7 betraegt"<<I7<<"Ampere."<<endl; 
cout<<"Der Strom I8 betraegt"<<I8<<"Ampere."<<endl; 
cout<<"Der Strom I9 betraegt"<<I9<<"Ampere."<<endl; 
cout<<"Der Strom I10 betraegt"<<I10<<"Ampere."<<endl; 
cout<<"Der Strom Iges betraegt"<<Ig<<"Ampere."<<endl; 

//Variable ausgeben(Leistung) 
cout<<"Die Leistung P1 betraegt "<<P1<<"Watt."<<endl; 
cout<<"Die Leistung P2 betraegt "<<P2<<"Watt."<<endl; 
cout<<"Die Leistung P3 betraegt "<<P3<<"Watt."<<endl; 
cout<<"Die Leistung P4 betraegt "<<P4<<"Watt."<<endl; 
cout<<"Die Leistung P5 betraegt "<<P5<<"Watt."<<endl; 
cout<<"Die Leistung P6 betraegt "<<P6<<"Watt."<<endl; 
cout<<"Die Leistung P7 betraegt "<<P7<<"Watt."<<endl; 
cout<<"Die Leistung P8 betraegt "<<P8<<"Watt."<<endl; 
cout<<"Die Leistung P9 betraegt "<<P9<<"Watt."<<endl; 
cout<<"Die Leistung P10 betraegt "<<P10<<"Watt."<<endl; 
cout<<"Die Leistung Pges betraegt "<<Pg<<"Watt."<<endl; 
cout<<"Die Leistung Pg1 betraegt "<<Pg1<<"Watt."<<endl; 


//Maschenregel ausgeben 
M=U5-U10+U8+U6; 
cout<<"Bei der Machenregel kommt"<<M<<"heraus."<<endl; 




    system("PAUSE"); 
    return EXIT_SUCCESS; 
} 

我真的很感激帮助如何解决这个错误。

+5

你应该学会使用-.- – Julius

+0

这又如何帮助我的循环摆脱tghis错误的? – user3490936

+1

这会让阅读代码更容易。这反过来可能会更容易发现错误(s)。 – juanchopanza

回答

3

的意见是正确的。你应该学会使用循环。

说了这么多,这个问题是更可能使用的是未初始化的变量。看到这个:

U78=I678*R78 

I678的值是未初始化的,但你用它来计算U78。我的Visual Studio还报道这些变量初始化之前被使用:

1>warning C4700: uninitialized local variable 'R78' used 1>warning C4700: uninitialized local variable 'U12345' used 1>warning C4700: uninitialized local variable 'U123' used 1>warning C4700: uninitialized local variable 'I2' used 1>warning C4700: uninitialized local variable 'U4' used 1>warning C4700: uninitialized local variable 'R4' used 1>warning C4700: uninitialized local variable 'I9' used 1>warning C4700: uninitialized local variable 'R9' used

你在做师行使用这些直接或间接的,因此,如果他们是初始化时,程序会表现出不确定的行为。所以初始化你的变量,更好地设置你的代码的格式,以便一行代码的长度不是很多,并开始使用循环。

+0

好吧,我怎么能解决这个问题,现在,怎么我不是在C++中:( – user3490936

+1

,伟大的,我不知道你的程序是什么应该做的。这是你的工作,你不能做的是使用未初始化的变量。右现在,我列出的这些变量会有什么随机值。它可以是0,-10,23432432.43243,-867867,谁知道。你不知道,我不知道,也没有人知道这些变量的值是每次你的程序运行,所以你可以在你的程序需求上进行操作,并且在你使用它们之前为这些变量赋予一个有意义的值。 – PaulMcKenzie

+0

好的,谢谢我appreachiate它 – user3490936