编写程序实现取一个整数a从右端开始的4~7位。C++
问题描述:
#include
using namespace std;
int zhuanhuan(int a)
{
int b;
char c;
if((b=a/10)!=0)
zhuanhuan(b);
c=a%10+'0';
return c;
}
int main()
{
int zhuanhuang(int a);
int a;
int i;
char b[20];
cout<<"输入一个不小于7位数的整数:";
cin>>a;
if(a<1000000)
{
cout<<"输入错误!请重新输入"<<endl;
}
else
{
b[20]=zhuanhuan(a);
}
for(i=(sizeof(b)-7);i>=(sizeof(b)-4);i++)
cout<<b[i];
cout<<endl<<endl;
return 0;
}
为什么我的else没有输出?一旦输入了1111111这个数字,然后就直接什么都没有直接结束
答
#include <iostream>
using namespace std;
void foo(int x, int acc)
{
if (acc == 0) return;
foo(x / 2, acc - 1);
cout << x % 2;
}
int main()
{
int a = 2049;
foo(a >> 3, 4);
return 0;
}
补充
#include <iostream>
using namespace std;
void foo(int x, int acc)
{
if (acc == 0) return;
foo(x / 10, acc - 1);
cout << x % 10;
}
int main()
{
int a = 1234567;
foo(a / 1000, 4);
return 0;
}
输出
1234