注册 登录
编程论坛 C++教室

同样的变量,放在循环内就无法输出了,求解答

有敌手 发布于 2008-05-08 23:18, 562 次点击
#include<iostream>
#include<cstring>
using namespace std;
int mul(int k)
{    if(k==0)
     {
     return 1;}
     if(k!=0)
    {int a=1,i;
     for(i=0;i<k;i++)
      {a*=2;
       cout<<a<<endl;
       }
    return a;}
}
string twotoeight(string c,int q)
{
  
       int i=0,j=0,n=0,k,m,x,c1;
       char temp;
       string d;


 if(q%3!=0)
  {j=3-(q%3);
   for(i=0;i<j;i++)
    c[q+i]=0;}
    for(i=0;i<q;i++)
    cout<<"c[]:"<<c[i]<<endl;/////此处可以输出c[1]
   
   for(i=q+j;i>0;i-=3)
      {for(m=2;m>=0;m--)
        {x=i-m-1;

         cout<<"c[1]:"<<c[1
         ]<<endl;////同样无法输出 c[1]
         if(c[x]=='1')
           {
           n+=mul(2-m);}
           cout<<"n:"<<n<<endl;}
          d[i/3-1]=n;
          }
         
         return d;}


     

//////////主函数//////////////////
int main()
{   int i,q;
    string a,b,c;
    char d[11]={'0'};   
    cout<<"1.二进制转换为八进制\n2.二进制转换为十六进制"<<endl;
    cout<<"3.八进制转换为二进制\n4.八进制转换为十六进制"<<endl;
    cout<<"5.十六进制转换为二进制\n6.十六进制转换为八进制"<<endl;
        cout<<"请选择:";

    cin>>i;  
    cout<<"请输入要转换的数字: ";
    cin>>a;
    q=strlen(a.c_str());/////C++中使用strlen(string)需将string变量转换为C风格/////
    for(i=0;i<q;i++)
     c[q-i-1]=a[i];

    b=twotoeight(c,q);

    system("pause");
}

[[it] 本帖最后由 有敌手 于 2008-5-11 22:14 编辑 [/it]]
1 回复
#2
忘记喧嚣2008-05-10 01:01
谢谢把完成代码给出...
1