Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Here is one of your (many) issues.</p> <p>You declare <code>addTen</code> as:</p> <pre><code>float addTen (float* number); </code></pre> <p>And call it as:</p> <pre><code>number=addTen(ptr_number); </code></pre> <p>Which clearly indicates it returns a value.</p> <p>Now, do you see a return statement in the function definition?</p> <pre><code>float addTen (float* number) { ptr_number=ptr_number+10; // No return statement!! } </code></pre> <hr> <p>Next up, all your function take a <code>float*</code> as a parameter, which you should read as "Pointer to a Floating point number". Note that a pointer is <strong><em>not</em></strong> the same thing as the value itself.</p> <p>To get from a pointer to a value, you need to "de-reference" it:</p> <pre><code>float addTen (float* number) { *ptr_number = *ptr_number + 10; } </code></pre> <p>The star (<code>*</code>) before each <code>ptr_number</code> means to go from the pointer back to the actual value.</p> <p>Before, you were trying to add 10 to a pointer.<br> (that is valid, but not appropriate in the current context)</p> <p>Now, with the <code>*</code>, you're adding 10 to the value stored at the pointed-to location.</p> <hr> <hr> <p><strong>Ultimately, here's my corrected version of your code</strong></p> <pre><code>void displayMenu(); void addTen (float* number); void divideByTwelve(float* number); void subtractSixteen(float* number); void multiplyByEleven(float* number); int main (void) { int menu; float number; printf("Please enter a number : "); scanf("%f", &amp;number); displayMenu(); scanf("%d", &amp;menu); do { printf("\nEnter 5 to see final number\n"); scanf("%d",&amp;menu); switch (menu) { case 1: addTen(&amp;number); break; case 2: divideByTwelve(&amp;number); break; case 3: subtractSixteen(&amp;number); break; case 4: multiplyByEleven(&amp;number); break; } printf("Your number is: %.2f \n", number); }while(menu!=5);//close of the do-while loop printf("Your FINAL number is: %.2f \n", number); } void displayMenu() { printf("How would you like to manipulate your number\n"); printf("1. Add 10\n"); printf("2. Divide by 12\n"); printf("3. Subtract 16\n"); printf("4. Multiply by 11\n"); } void addTen (float* ptr_number) { *ptr_number = *ptr_number+10; } void divideByTwelve (float* ptr_number) { *ptr_number = *ptr_number/12; } void subtractSixteen(float* ptr_number) { *ptr_number = *ptr_number-16; } void multiplyByEleven(float* ptr_number) { *ptr_number = *ptr_number*11; } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload