您的位置:首页 > 其它

进制转换(字符串问题)

2014-10-16 11:29 169 查看
1.进制转换(jinzhi.cpp /jinzhi.in /jinzhi.out)

题目描述
  设有一个字符串A的结构为:  A="m<n>p"
    其中m为数字串(长度<=20),而n,p均为1或2位的数字串(其中所表达的内容在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<<">";

       
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  字符串 进制转换