this code is of problem http://www.spoj.com/problems/BASE/ and it runs fine on windows and linux but when i run it on ideone it does not show me any output. Can anyone tell me what is the reason behind this?
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<string>
#include<iostream>
using namespace std;
long int convert_base10(char *num, int base)
{
int len, dig;
long int result = 0;
len = strlen(num);
// printf("len = %d\n", len);
// converting to base 10
for(int i=0; i<len; i++)
{
if((num[len-i-1] >= 'A') && (num[len-i-1] <= 'F'))
dig = num[len-i-1] - 55;
else
dig = num[len-i-1] - 48;
result += (dig * pow(base, i));
// printf("num[%d] = %d\n", len-i-1, dig);
}
return result;
}
void convert_basei(long int num, int base, string &result1)
{
bool error = false;
int pos = 6;
char result[7], rem;
// initially storing space on all position
for(int i=0; i<7; i++)
result[i] = ' ';
while(num)
{
if((num % base) >= 10)
rem = (num % base) + 55;
else
rem = (num % base) + 48;
result[pos] = rem;//printf("result[%d] = %c\n", pos, rem);
num /= base;// printf("quotient = %d\n", num);
pos--;
if(pos < 0 && num > 0)
{
error = true;
break;
}
}
if(error == true)
result1 = " ERROR";
else
result1 = result;
// cout<<"result = "<<result1<<endl;
}
int main()
{
char num[7];
string result;
int base1, base2;
while(scanf("%s%d%d", num, &base1, &base2) == 3)
{
// printf("num = %s\nbase1 = %d\nbase2 = %d\n", num, base1, base2);
long int temp = convert_base10(num, base1);
// printf("temp = %ld\n", temp);
convert_basei(temp, base2, result);
cout<<result<<endl;
}
return 0;
}
Replace this code:
while(scanf("%s%d%d", num, &base1, &base2) == 3)
{
long int temp = convert_base10(num, base1);
convert_basei(temp, base2, result);
cout<<result<<endl;
}
With this code, and the mystery will go away:
printf("trying to get input\n");
while(scanf("%s%d%d", num, &base1, &base2) == 3)
{
printf("got some input\n");
long int temp = convert_base10(num, base1);
convert_basei(temp, base2, result);
cout<<result<<endl;
}
printf("got no input\n");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With