ZOJ Basically Speaking

来源:互联网 发布:dota2最帅英雄知乎 编辑:程序博客网 时间:2024/06/10 05:01
//不同进制之间转换
#include<stdio.h>#include<string.h>int main(){char str[8];int before,after,result,i,num;while(scanf("%s%d%d",str,&before,&after) != EOF){  result = 0;       for(i = 0;str[i]!='\0';i++){       if(str[i]>='0'&&str[i]<='9')  result = result * before + str[i] - '0';       else result = result * before + str[i] - 'A' + 10;       }       i = 0;       memset(str,0,sizeof(str));       while(result){          if((num = result % after)>= 10 ) str[i] = num + 'A' - 10;          else str[i] = num + '0';          i++;          result /= after;       }       str[i] = '\0';       if(strlen(str) > 7) printf("  ERROR");       else { for(i = 7-strlen(str);i>0;i--)                putchar(' ');          for(i = strlen(str)- 1;i>=0;i--)            putchar(str[i]);            }                        printf("\n");}}

0 0