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

C++ for loop help

  1. Mar 28, 2005 #1
    I am learning how to use the for loop to find out the total of:
    1/30 + 2/29 + 3/28 + ....... + 29/2 + 30/1
    and i wrote the following. but it doesn't work and give the correct total.
    can you guys tell me what's wrong?
    Thanks

    #include <iostream>
    using namespace std;
    int main ()
    {
    int num, den; //numerator, denominator
    double total=0;

    for (num = 1, den = 30; num < 31; num++, den--)
    total += (num/den);
    cout << "Total is " << total<< endl;
    return 0;
    }
     
  2. jcsd
  3. Mar 28, 2005 #2

    chroot

    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    The for loop looks fine. The problem is that you're trying to do integer arithmetic with non-integer values (fractions). Try using floats or doubles instead.

    - Warren
     
  4. Mar 28, 2005 #3

    anti_crank

    User Avatar
    Science Advisor

    The problem is that the answer of num/den would be taken as an interger, then put into a double. So it would convert 0 into...0. The easiest solution would be to declare den as a float (or double).
     
  5. Mar 28, 2005 #4
    OH! I see.. THanks both of you guys!
     
  6. Mar 29, 2005 #5
    You can still keep the integers, but use static casting to convert the result of division to double without truncation:

    Code (Text):

    total += static_cast< double >( num ) / den;
     
    den, being an integer will be coerced to a double by the compiler.
     
    Last edited: Mar 29, 2005
  7. Apr 23, 2005 #6
    This will correct the problem for you!

    #include<stdio.h>

    #define POUNDS_PER_KILO 2.2406
    #define OZ_ALCOHOL_PER_DRINK 0.54
    #define PERCENT_WATER_MALE 0.58
    #define PERCENT_WATER_FEMALE 0.49
    #define GRAMS_ALC_PER_OZ 23.36
    #define PERCENT_WATER_BLOOD 0.806
    #define METABOLISM_RATE 0.012

    int main(void)
    {

    float numDrinks, weight, bac, mlWater, gramsAlc, alcPerMlWater, alcPerMlBlood, timeDrinking;
    char gender = 'c';

    printf("Welcome to the Percent Blood Alcohol Calculator!\n\n");
    printf("Enter the number of drinks you've had so far: ");
    scanf("%f", &numDrinks);

    printf("How many hours ago did you start drinking: ");
    scanf("%f", &timeDrinking);

    printf("Enter your gender(m or f): ");
    while((gender!='m')&&(gender!='M')&&(gender!='f')&&(gender!='F')) {

    scanf("%c", &gender);
    }

    printf("How much do you weigh (yes, your real weight): ");
    scanf("%f", &weight);

    if (gender == 'M' || gender == 'm') {
    mlWater = weight/POUNDS_PER_KILO * PERCENT_WATER_MALE*1000;
    }else if(gender=='F' || gender == 'f') {
    mlWater = weight/POUNDS_PER_KILO * PERCENT_WATER_FEMALE*1000;
    }

    gramsAlc = numDrinks*OZ_ALCOHOL_PER_DRINK*GRAMS_ALC_PER_OZ;
    alcPerMlWater = gramsAlc / mlWater;
    alcPerMlBlood = alcPerMlWater * PERCENT_WATER_BLOOD;
    bac = alcPerMlBlood * 100;
    bac = bac - METABOLISM_RATE * timeDrinking;

    printf("Your BAC is: %f\n", bac);

    printf("\n**Discalimer: The information from this calculator is only an estimate**\n");
    printf(" In fact, you're probably not the least bit inebriated, go have five more.\n");

    return 0;
    }
     
  8. Oct 15, 2006 #7
    can anyone help

    im having trouble with the for loop within the for loop.

    i have to to write a program that asks the user to enter the amount of terms they would like to use for an approximatoin. then print out a table that shows term number and approximation.
    the formula is p = 4 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11 + .............and so on.
    the table should look like this. if the user enters 5,


    Term Approximation Value
    1 x.xxxxxx
    2 x.xxxxxx
    3 x.xxxxxx
    4 x.xxxxxx
    5 x.xxxxxx
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?



Similar Discussions: C++ for loop help
  1. Loops in C-Programming (Replies: 15)

  2. C++ help (Replies: 7)

  3. C++ help. (Replies: 2)

  4. While loop in C (Replies: 11)

Loading...