张昕宇抽的什么烟:输入一整数S(0<=s<=32767)若不在范围内重新输入要求从个位数开始分离每位占一行

来源:百度文库 编辑:高考问答 时间:2024/04/29 11:53:33
用C++编程

vc

#include <iostream.h>
void fun(int);
void main(){
int a;
cout<<"输入一整数S(0<=s<=32767)"<<endl;
cin>>a;
fun(a);
while (a<0||a>32767){
cout<<"请重新输入"<<endl;
cin>>a;
fun(a);
}

return;
}

void fun (int s){
if (s>=0&&s<=32767){
if (s>=10000){
cout<<s%10<<endl;
cout<<s%100/10<<endl;
cout<<s%1000/100<<endl;
cout<<s%10000/1000<<endl;
cout<<s/10000<<endl;
return;
}

if (s>=1000){
cout<<s%10<<endl;
cout<<s%100/10<<endl;
cout<<s%1000/100<<endl;
cout<<s/1000<<endl;
return;
}

if (s>=100){
cout<<s%10<<endl;
cout<<s%100/10<<endl;
cout<<s/100<<endl;
return;
}

if (s>=10){
cout<<s%10<<endl;
cout<<s/10<<endl;
return;
}

cout<<s<<endl;
return;
}
}

我编了两个顺序输出的:
#include<iostream.h>
void out1(int); //逆序
void out2(int); //正序
void main()
{
int s=-1;
while(s<0||s>32767)
{
cout<<"请输入一个数,在0到32767之间";
cin>>s;
}
cout<<"逆序"<<endl;
out1(s);
cout<<endl;
cout<<"正序"<<endl;
out2(s);
}
void out1(int s)
{
int i;
if(s<10)
{
cout<<s<<endl;
return;
}
while(s)
{
i=s%10;
s=s/10;
cout<<i<<endl;
}
}
void out2(int s)
{
int i=0,j;
while(s)
{
j=s%10;
s/=10;
i=10*i+j;
}
out1(i);
}