网页制作与网站制作,自媒体平台哪个好,微信公众号推广的好处,徽州网站建设很郁闷#xff0c;这道题一直WA#xff0c;然而本地我测了好几组数据都是通过的#xff0c;上网找了网友陈宇龙加油加油加油的AC的代码#xff0c;http://blog.csdn.net/Since_natural_ran/article/details/51742149#xff0c;发现没有什么不同。。。很无语。。 #include…很郁闷这道题一直WA然而本地我测了好几组数据都是通过的上网找了网友陈宇龙加油加油加油的AC的代码http://blog.csdn.net/Since_natural_ran/article/details/51742149发现没有什么不同。。。很无语。。 #includestdio.h
#includestring.h
#includemath.h int main() { char input[10005]; int i,temp,length,Case; scanf(%d,Case); while(Case--){ scanf(%s,input); length strlen(input); temp length%4; int sum 0; if(temp) //巧妙地处理了余数位 { for(i 0;i temp; i) sum (input[i] - 0)*pow(2,temp - 1 - i); //注意函数 printf(%X,sum); } for(i temp;i length; i 4) //注意 i 必须要赋值 printf(%X,(input[i] - 0)*8 (input[i1] - 0)*4 (input[i2] - 0)*2 (input[i3] - 0)); printf(\n); } return 0; } #include stdio.h#include string.h#include math.hchar bin[10001]{0};int main(){ int n; char hex16[16] {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}; scanf(%d,n); while(n--){ scanf(%s,bin); int lstrlen(bin); for(int i0;bin[i]!\0;i){ bin[i]-0x30; } char hex[2510]{0}; int reml%4; int i,j,tmp0; if(rem!0){ for(i0;irem;i){ tmpbin[i]*pow(2,rem-i-1); } hex[0]hex16[tmp]; } else{ hex[0]hex16[bin[0]*8bin[1]*4bin[2]*2bin[3]*1]; i4; } if(l4){ for(j1;bin[i4]!\0;i4,j){ hex[j]hex16[bin[i]*8bin[i1]*4bin[i2]*2bin[i3]*1]; } hex[j]hex16[bin[i]*8bin[i1]*4bin[i2]*2bin[i3]*1];hex[j1]\0; } printf(%s\n,hex); } return 0;} 这是我的代码。思路完全一样然而就是WA。。。 不过上面那位仁兄代码写得很不错学习了。 ************************************************************************* 睡了一觉醒来发现自己犯了一个愚蠢的错误由于自己已经把输入字符串去“ASCII”化了这样就不能用bin[i4]!\0;来判断字符串结束了因为0的ASCII码就是‘\0’之前测的用例对是因为没有走到过这个条件 思维不严谨啊~这回知道了还是用字符串的长度判断比较靠谱......... 而且对于字符串不要去“ASCII”化而是像上面那位仁兄一样用 (input[i] - 0)这种形式比较好转载于:https://www.cnblogs.com/cjf1699-dut/p/7306101.html