c – ideone不显示任何输出
发布时间:2020-12-16 05:03:23 所属栏目:百科 来源:网络整理
导读:这个代码是问题 http://www.spoj.com/problems/BASE/,它在Windows和Linux上运行正常但是当我在ideone上运行它时它没有显示任何输出.谁能告诉我这背后的原因是什么? #includestdio.h#includemath.h#includestring.h#includestring#includeiostreamusing name
这个代码是问题
http://www.spoj.com/problems/BASE/,它在Windows和Linux上运行正常但是当我在ideone上运行它时它没有显示任何输出.谁能告诉我这背后的原因是什么?
#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 = %dn",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] = %dn",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] = %cn",pos,rem); num /= base;// printf("quotient = %dn",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 = %snbase1 = %dnbase2 = %dn",base1,base2); long int temp = convert_base10(num,base1); // printf("temp = %ldn",temp); convert_basei(temp,base2,result); cout<<result<<endl; } return 0; } 解决方法
替换此代码:
while(scanf("%s%d%d",&base2) == 3) { long int temp = convert_base10(num,base1); convert_basei(temp,result); cout<<result<<endl; } 有了这段代码,神秘就会消失: printf("trying to get inputn"); while(scanf("%s%d%d",&base2) == 3) { printf("got some inputn"); long int temp = convert_base10(num,result); cout<<result<<endl; } printf("got no inputn"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |