Kamlees Danger Bhaijan Ответов: 4

Как удалить ошибки из этой программы?


<pre>



<pre>#include<iostream.h>
#include<conio.h>
 float Celsius(float,float ,float , float ,int);
float Kelvin(float C,float K,float F,float ans,int y);                                     //prototypes
float Fahrenheit(float C,float K,float F,float ans,int y);
int main()
{

int x;
float answer;
cout<<"\t\t\tWElCOME TO TEMPERATURE CALCULATOR";
getch();
cout<<"\n\nSelect your first operator =>";
cout<<"\n1.Kelvin";
cout<<"\n2.Celsius";
cout<<"\n3.Fahrenheit\n\n";
cin>>x;
switch(x)
{
  case 1:float Kelvin(float C,float K,float F,float ans,int y) ;
			break;
  case 2:float Celsius(float C,float K,float F, float ans,int y)   ;
			break;
  case 3:float Fahrenheit(float C,float K,float F,float ans,int y)    ;
			break;
  }
 return 0 ;
  }                                                                                         //end of main
//------------------------------------------------------------------------------------------------------------------------------------------
float Kelvin(float C,float K,float F, float ans,int y)
{
cout<<"\nSelect your second operator =>";
cout<<"\n1.Celsius";
cout<<"\n2.Fahrenheit";
cin>>y;
switch(y)
 {case 1:cout<<"Enter Kelvin";
			cin>>K;
			C=K-273.15;
			ans=C;
			break;
  case 2:cout<<"Enter Kelvin" ;
			cin>>K;
			F=K*9/5-459.67;
			ans=F;
			break;
  }
  cout<<"your answer is "<<ans;
  return (0);
}


float Celsius(float C,float K,float F, float ans,int y)
{
cout<<"Select your second operator =>";
cout<<"\n1.Kelvin";
cout<<"\n2.Fahrenheit";
cin>>y;
switch(y)
 {case 1:cout<<"Enter Celsius";
			cin>>C;
			K=C+273.15;
			ans=K;
			break;
  case 2:cout<<"Enter Celsius" ;
			cin>>C;
			F=C*9/5+32;
			ans=F;
			break;
  }
  return ans;
}



float Fahrenheit(float C,float K,float F,float ans,int y)
{
cout<<"Select your second operator =>";
cout<<"\n1.Kelvin";
cout<<"\n2.Celsius";
cin>>y;
switch(y)
 {case 1:cout<<"Enter Fahrenheit";
			cin>>F;
			K=(F+459.67)*5/9;
			ans=K;
			break;
  case 2:cout<<"Enter Fahrenheit";
			cin>>F;
			C=(F-32)*5/9;
			ans=C;
			break;
  }
return ans;
}



the error is in 21st 23rd and 25th line inside the switch
in the function calls
i am compiling using turboc++ 4.5
i will copypaste the errorsbelow:
error FUNC.CPP 21:Expression syntax in function main()
error FUNC.CPP 23:Expression syntax in function main()
error FUNC.CPP 25:Expression syntax in function main()
i am trying to make a temperature converter using functions and some switches


Что я уже пробовал:

//я пытался изменить вызовы функций почти со всеми параметрами ie и определением просто все, но я не спрашивал своего учителя, хотя я пытался заглянуть в книгу, но это не помогает, пытаясь сделать это в течение недели ovr, но я не могу pls помочь .может ли кто-нибудь восстановить код, который будет действительно полезен


заранее спасибо

jeron1

Может быть, Взгляните сюда, чтобы начать работу с синтаксисом вызова функций. Google покажет вам много ссылок на этот счет.C Функции[^Никогда не бойтесь спросить учителя, что бы он ни сказал, это его работа.

4 Ответов

Рейтинг:
2

W∴ Balboos, GHB

Вы кейсы:
Это просто не то, как вы делаете вызовы функций - это то, как вы их объявляете.

Вышеизложенное является ответом на вашу заявленную проблему. Посмотрите в интернете бесчисленное множество примеров того, как это делается (то есть это часть почти любого кода C++).

Или справка, показывающая использование функций для Turbo C++.


Рейтинг:
2

Rick York

Вы разместили прототипы функций в неправильном месте. Они должны быть объявлены вне любых других функций :

//prototypes
float Celsius( float, float , float , float ,int );
float Kelvin( float C, float K, float F, float ans, int y );                                     
float Fahrenheit( float C, float K, float F, float ans, int y );

int main()
{
// rest of code goes here.
}
Лучше иметь имена переменных, перечисленные в прототипах, и использовать описательные имена для переменных, потому что в большинстве случаев однобуквенные имена бесполезны.


Richard MacCutchan

Нет ничего плохого в том, чтобы иметь прототипы внутри функции.

Рейтинг:
2

CPallini

Мои два цента

#include <iostream>
#include <utility>
#include <map>
#include <string>
using namespace std;

enum Scale
{
  KELVIN,
  CELSIUS,
  FAHRENHEIT,
};

int main()
{
  using Fun = double (*)(double);

  map < pair<Scale, Scale>, Fun > conv;
  map < Scale, string> desc;

  desc[KELVIN] = "Kelvin";
  desc[CELSIUS] = "Celsius";
  desc[ FAHRENHEIT] = "Fahreneit";

  conv[ make_pair(KELVIN, CELSIUS) ] = [](double k){return (k-273.15);};
  conv[ make_pair(KELVIN, FAHRENHEIT)] =  [](double k){return (k-273.15)*9/5 +32;};
  conv[ make_pair(CELSIUS, KELVIN)] = [](double c){return (c+273.15);};
  conv[ make_pair(FAHRENHEIT, KELVIN)] = [](double f){ return (f-32)*5/9+273.15;};

  Scale s[2];
  int choice;

  cout << "choose the first scale (1 Kelvin, 2 Celsius, 3 Fahreneit)" << endl;
  cin >> choice;
  s[0] = static_cast<Scale>(choice-1);

  cout << "choose the second scale (1 Kelvin, 2 Celsius, 3 Fahreneit)" << endl;
  cin >> choice;
  s[1] = static_cast<Scale>(choice-1);

  double t, tc;

  cout << "enter the temperature (" << desc[s[0]] << ")" << endl;
  cin >> t;
  
  if ( s[0] == KELVIN  && s[1] == KELVIN )
  {
    tc = t;
  }
  else if ( s[0] != KELVIN && s[1] != KELVIN )
  {// here we use Kelvin as intermediate scale
    auto f = conv[ make_pair( s[0], KELVIN )];
    auto g = conv[ make_pair( KELVIN, s[1] )];
    tc = g(f(t));
  }
  else
  {
    auto f = conv[ make_pair(s[0], s[1])];
    tc = f(t);
  }

  cout << "the converted temperature (" << desc[s[1]] << ") is " << tc << endl;
}


Рейтинг:
1

Patrice T

Очевидно, вы не понимаете основ вызова функций/подпрограмм.
Совет: забудьте пока об этом проекте и хорошенько изучите, как все работает с C/C++.
Найдите пару туто и следуйте за ними полностью.
Вот ссылки на справочники книг по Си и Си++ авторов этих языков. Обратите внимание, что C является предком C++, поэтому знание C всегда полезно с C++.
Язык программирования Си - Википедия, свободная энциклопедия[^]
https://hassanolity-да.files.wordpress.com/2013/11/the_c_programming_language_2.pdf[^]
http://www.ime.usp.br/~ПФ/Керниган-Ритчи/с-Программирование-электронные книги.формат PDF[^]

Язык Программирования C++ [^]

Цитата:
но я не спрашивал своего учителя

Очень жаль, что объяснять вам, как все работает, - это его работа.