同样的变量,放在循环内就无法输出了,求解答
#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]]