Другие языки программирования и технологии

Почему крашиться моя простая программка на C++

DEVC++ сохранил и скомпилировал без ошибок , но при запуске выдает ошибку
вот исходник

#include <iostream.h>
#include <stdio.h>
int main(int nNumberofArgs, char* pszArgs[])
{

int nVoltage;
int nCurrent;
int nResistance;
nVoltage=nCurrent*nResistance;
nResistance=nVoltage/nCurrent;
nCurrent=nVoltage/nResistance;
cout nVoltage;
cin >> nCurrent;
nResistance=nVoltage/nCurrent;

cout
OM
Orange Mix
155
Вот предлагаемый мной вариант:

//#include <iostream.h>
#include <iostream>
using namespace std;

int main()
{
char b[256],c[256],*p,k;
unsigned char t;
float IRU[3];
cout > b;
cout > c;
t=(b[0]|0x20)-105; k=t/12+t/9; p=&b[2]; IRU[k]=atof(p);
t=(c[0]|0x20)-105; k=t/12+t/9; p=&c[2]; IRU[k]=atof(p);
t=(b[0]|0x20)+(c[0]|0x20);
switch(t)
{
case 219: IRU[2]=IRU[0]*IRU[1]; break;
case 222: if(IRU[0]) IRU[1]=IRU[2]/IRU[0]; else t=0; break;
case 231: if(IRU[1]) IRU[0]=IRU[2]/IRU[1]; else t=0; break;
default: t=0;
}
if(t) cout
Аркадий Щипков
Аркадий Щипков
76 473
Лучший ответ
Во-первых, это написано на устаревшей версии C++, которая в современных компиляторах уже не поддерживается (не знаю, какую версию Dev-C++ ты используешь). Во-вторых, int тут не годится - работать будет, но неправильно.

#include <iostream>
using namespace std;
int main(){
float nVoltage, nCurrent, nResistance;
nVoltage=nCurrent*nResistance;
nResistance=nVoltage/nCurrent;
nCurrent=nVoltage/nResistance;
cout > nVoltage;
cout > nCurrent;
nResistance=nVoltage/nCurrent;
cout
Ну очевидно же.Используем переменные, которые нули!И делим на них!
Лиля права, ей ЛО!
как по версиям не помню.
но вроде

Объявление переменной без инициализации навроде
int nResistance;
даёт в С++ ей значение НОЛЬ

так что все три первые формулы это перемножение нулей и попытки деления на ноль
и деление на ноль естественно грохается.
формально там нарушений нет и всё компилируется.
грохается на этапе исполнения из-за кривизны алгоритма
#include <iostream.h>
#include <stdio.h>
using namespace std;
int main(int nNumberofArgs, char* pszArgs[])
{

int nVoltage;
int nCurrent;
int nResistance;
cout << "Enter V: ";
cin >> nVoltage;
cout << "\nEnter I: ";
cin >> nCurrent;
if(nCurrent==0)
{
cout<<"\nERROR:nCurrent is zero!";
system ("pause");
return 0;
}
nResistance=nVoltage/nCurrent;

cout <<"\nResult: ";
cout << nResistance;

system ("pause");
return 0;
}
Алексей Лосев
Алексей Лосев
8 379