进制转换(字符串问题)

1.进制转换(jinzhi.cpp /jinzhi.in /jinzhi.out)
题目描述 
  设有一个字符串A的结构为:  A="m<n>p"
    其中m为数字串(长度<=20),而n,p均为12位的数字串(其中所表达的内容在2-10之间)。
    程序要求:从键盘上读入A后(不用正确性检查),将A中的数字串m(n进制),以p进制的形式输出。 
输入格式 
  A="48<10>8"
          其意义为:将10进制数48,转换成8进制数输出。 
输出格式 
  输出结果为:48<10>=60<8> 
输入样例 
  101<2>10 
输出样例 
  101<2>=5<10>
 
时间限制 
  各个测试点1s

 

 

 

 

 

#include<iostream>

#include<cstdio>

#include<cstdlib>

#include<cstring>

using namespace std;

char c[100]={0};

int main()

{freopen("jinzhi.in","r",stdin);

   freopen("jinzhi.out","w",stdout);

       charx[10];

       inty[10];

       inta,b,l,t1=0,t2=0;

       scanf("%s",c);

       sscanf(c,"%[^<]<%d>%d",x,&a,&b);//sscanf函数  %[^<]的作用是读取字符串^是遇到什么为止字符串处理经典转换

//     printf("%d%d %d",x,a,b);

       l=strlen(x);

       intr=1;

       for(inti=l-1;i>=0;i--)//求出十进制

       {

             

                     t1+=(x[i]-'0')*r;

 

       //cout<<int(x[i]-'0')<<endl;

       r*=a;

       }//cout<<t1;

       intt=0;

       while(t1)//辗转除变为b进制

       {

              y[t++]=t1%b;

              t1/=b;

       }

       //for(inti=t-1;i>=0;i--)

//     cout<<y[i];

printf("%s<%d>=",x,a);

for(int i=t-1;i>=0;i--)

       cout<<y[i];

       cout<<"<"<<b<<">";

       

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值