# Getting the same answer, when the program restarts

Printable View

• 05-31-2008
Tippie
Getting the same answer, when the program restarts
Well i've made a program that asks the decimal number, and puts it in a numberStelsel.
BUt my problem is that it doenst work properly.
for example
Decimal number = 16
Numberstelsel= 8
I get: 20

This is correct
After i push de Y, to let the program start again.
I insert
Decimal number = 15
Numberstelsel= 5
I get: 20

This is the wrong number + its the same answer of the one before this.
Can someone help me with this one?

Code:

```#include <stdio.h> #include <conio.h> /* definition of functions: */ int Input(void); void DecimalToBinary(double *); void Output(double); /* variables declare*/ int nDecimal = -1, nStelsel; double dRem , dPow_10 = 1, dBinary; char chAgain = 'y'; int main() { while(chAgain=='y')         {                 nDecimal = Input();           printf("\nVoer het getalstel in:\n");                 scanf("%d",&nStelsel);                 while(nStelsel < 2 || nStelsel >= 10)                 {                         printf("Voer een getalstelsel tussen de 1 en de 10:");                         scanf("%d", &nStelsel);                 }                 DecimalToBinary(&dBinary);                 Output(dBinary);                 printf("Do you want to run this program again? [y/n]: ");           chAgain = getch();         }         /* exit program */         return 0; } int Input(void) /****************************************************| |Function: Hier word het decimale getal gekozen.    | |Argument: geen                                      | |return:  nDecimal                                  | \****************************************************/ {         while((nDecimal < 0) || (nDecimal > 1023))         {       printf("Dit programma rekent een decimaal getal om naar een getal \nin de door uw ingevoerde getalstelsel\n");                 printf("Your decimal number (0 .. 1023): ");                 scanf("%d",&nDecimal);         } return nDecimal; } void Output(double dBinary) /*******************************************| |Function: Print de waarde uit              | |Argument: dBinary                          | |Return: geen                                | \*******************************************/ {         printf("The value is: %10.0lf\n",dBinary); } void DecimalToBinary(double *pBinary) /*********************************************\ |Function: Rekent het om in het getalstelsel  | |Argument: nDecimal                            | |Return:  dBinary                              | \*********************************************  */      {         while(nDecimal != 0)         {                 dRem = nDecimal % nStelsel;                 nDecimal = nDecimal / nStelsel;                 *pBinary = dBinary + (dRem * dPow_10);                 dPow_10 = dPow_10 * 10;         } }```
• 05-31-2008
Magos
Well, once your Input function retrieves a valid input it will keep returning that one. Look closer on this function.
Oh, and this is a C# forum, not C++.