Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Remedial C++

  1. Oct 13, 2005 #1
    I know I am not a moron but this C++ is killing me, I have to write a program using functions to convert temp between c, f, k I am hung up

    // Mod4project2tempconvert.cpp : Defines the entry point for the console application.
    #include <iostream>
    using namespace std;

    double ftemp (double F, double C, double K, double temp, double scale)

    {
    while (scale != 0)
    {
    if (scale==C);
    F=temp*9/5+32;
    K=temp+273.15;

    if (scale==F);
    C=(temp-32)*5/9;
    K=(temp-32)*5/9+273.15;

    if (scale==K);
    F=(temp-273.15)*9/5+32;
    C=temp-273.15;
    }
    }


    int main()
    {
    double F, C, K, temp, scale;
    cout<<"Enter the scale you want to convert from C, F, or K- 0 to quit: ";
    cin >> scale;

    cout<<"\nEnter temperature";
    cin >> temp;
    cout<<"\nCongratulations you entered "
    <<scale<<"The following results are your converted temperatures "
    <<ftemp(C, F, K)<<endl;

    return 0;
    }

    Any help?
    Thanks
     
  2. jcsd
  3. Oct 13, 2005 #2
    maybe this is closer

    // Mod4project2tempconvert.cpp : Defines the entry point for the console application.
    #include <iostream>
    using namespace std;

    double ftemp (double F, double C, double K, double temp, double scale)

    {
    while (scale != 0)
    {
    if (scale==C)
    {
    F=temp*9/5+32;
    K=temp+273.15;
    }

    if (scale==F)
    {
    C=(temp-32)*5/9;
    K=(temp-32)*5/9+273.15;
    }

    if (scale==K)
    {
    F=(temp-273.15)*9/5+32;
    C=temp-273.15;
    }
    }
    }


    int main()
    {
    double F, C, K, temp, scale;
    cout<<"Enter the scale you want to convert from C, F, or K- 0 to quit: ";
    cin >> scale;

    cout<<"\nEnter temperature";
    cin >> temp;
    cout<<"\nCongratulations you entered "
    <<scale<<"The following results are your converted temperatures "
    <<ftemp(F, C, K)<<endl;

    return 0;
    }

    I only get one complier error:ftemp does not require 3 arguments
    ........
     
  4. Oct 13, 2005 #3

    dduardo

    User Avatar
    Staff Emeritus

    Where are you inputting the values of F, C and K in main?
     
  5. Oct 13, 2005 #4

    HallsofIvy

    User Avatar
    Staff Emeritus
    Science Advisor

    Presumably because he wants the function to just do the calculation.

    He posted this also in "homework help" where I suggested that he pass the F,K,C variables by "reference" rather than by "value".
     
  6. Oct 13, 2005 #5
    exactly what is the function suppose to do....
    waht is the return "double"variable? and the compiler error you get should be easily solved...look at your function definition and look at your function call

    as for your function itself, it will either enter a infinite loop because you haven't altered the scale value or while (scale != 0){...} or you won't use the function itself because scale==0.
     
  7. Oct 13, 2005 #6
    this is the answer your looking for


    double ftemp (double F, double C, double K, double temp, double scale)
    you dont return a double;
    your function prototype may be something like:
    void ftemp (double* F, double* C, double* K, double temp, double scale)

    and pass the variables like:
    ftemp(&F, &C, &K, temp, scale)


    but you will still need to output to screen the values.
     
    Last edited: Oct 13, 2005
  8. Oct 13, 2005 #7

    dduardo

    User Avatar
    Staff Emeritus

    Even if you pass the variables by reference how do you expect to do this type of comparison without having an intial value:

    if (scale==C)
     
  9. Oct 13, 2005 #8
    i would have rewritten the code and give the correct answer but this is "homework help" and therefore i don't want to give the full answer.
     
  10. Oct 14, 2005 #9
    Well.....

    I had it figured out with a more consise program but I accidently earsed it. So I had to redo it it works and should be more than enough to get me a 100% even though it is not as pretty as I would like.

    // mod4project2.cpp : Defines the entry point for the console application.
    #include <iostream>
    using namespace std;

    double kscale (double);
    double fscale (double);
    double cscale (double);
    double kscale1 (double);
    double fscale1 (double);
    double cscale1 (double);

    int main()
    {
    double k, f, c, temp;
    char scale;
    cout<<"Enter temperature: ";
    cin>>temp;
    cout<<"\nEnter scale C, F, or K: ";
    cin>>scale;

    if (scale=='k' || scale=='K')
    {
    k= temp;
    f=kscale (temp);
    c= kscale1 (temp);
    cout<<"\n K= "<<k<<"\n C= "<<c<<"\n F= "<<f<<endl;
    }

    else if (scale=='f' || scale=='F')
    {
    f= temp;
    k= fscale (temp);
    c= fscale1 (temp);
    cout<<"\n K= "<<k<<"\n C= "<<c<<"\n F= "<<f<<endl;
    }
    else if (scale=='c' || scale=='C')
    {
    c= temp;
    k= cscale(temp);
    f= cscale1(temp);
    cout<<"\n K= "<<k<<"\n C= "<<c<<"\n F= "<<f<<endl;
    }
    }

    double kscale (double temp)
    {
    double f;
    f=((temp-273.15)*(9/5))+32;
    return f;
    }
    double kscale1 (double temp)
    {
    double c;
    c=temp-273.15;
    return c;
    }

    double fscale (double temp)
    {
    double k;
    k=((temp-32)*(5/9))+273.15;
    return k;
    }

    double fscale1 (double temp)
    {
    double c;
    c=(temp-32)*(5/9);
    return c;
    }

    double cscale (double temp)
    {
    double k;
    k=temp+273.15;
    return k;
    }
    double cscale1 (double temp)
    {
    double f;
    f=(temp*9/5)+32;
    return f;
    }
    Thanks for the suggestions.
     
  11. Oct 14, 2005 #10
    this code looks ugly yet it may do as you wish.
    does the code need to have
    Code (Text):
    cout<<"\n K= "<<k<<"\n C= "<<c<<"\n F= "<<f<<endl;
    written three times?

    question:
    Code (Text):
    cout<<"\nEnter scale C, F, or K: ";
    cin>>scale;
    what happens if a user doesnt enter C,F or K?

    plus your main doesnt return a int which is required by ansii
     
    Last edited: Oct 14, 2005
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?



Similar Discussions: Remedial C++
  1. To C or not to C (Replies: 31)

  2. C or C++? (Replies: 8)

  3. Java or C/C ++ (Replies: 5)

Loading...