C++编写函数,获取一个整数的倒置整数,如123的倒置整数为321

同学的答案
#include "stdafx.h"
#include<iostream>
using namespace std;
int PP(int n)
{
int m=0;
for(;n>0;)//为什么两边要有;
{
int t=n%10;
n/=10;
m++;
}
return m;
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
cin>>n;
int a=PP(n);
int s=0,i=a;
for(;n>0;)
{
int t=n%10;
n/=10;

s+=t*pow(10,(i-1));
i--;
}
cout<<s<<endl;
system("PAUSE");
return 0;
}
............for(;n>0;)//为什么两边要有;

for计数循环需要三个部分,一般可以这样理解:

for(循环初值;循环条件;循环步长){
    循环体;
}

for(; n>0;)这种写法也就省略了初值和步长,因为联系上下文也可以找到初值和步长。

其实可以写成规范的当型循环while:

while(n>0){
    循环体;
}

所以代码就是:

#include <bits/stdc++.h>
using namespace std;

int PP(int x)
{
int y=0, g;
while(x>0) { 
g=x%10; //取出每次的个位 
y=y*10+g;
x=x/10;
}
return y;
}
int main()
{
int n, n2;
cin>>n;
n2=PP(n); // n2是n的后代 
cout<<n2<<endl;
system("PAUSE");
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-03
先判断位数~(以下我以3位的为例)
定义这个数,并且赋值。
这个数除以10,取余数,把余数赋值给b[0],并且,把商赋值给a[0]。
用循环重复上述过程,直到某一次a[n]等于零时,结束循环。并且判断循环了几次,用以决定次数的位数。
把b[0]*10+b[1]赋值给c[1],把c[1]*10+b[2]赋值给c[2]用循环重复上述过程,知道某个b[n]不存在。此时,输出c[n-1],就是你要的那个反过来的数了。本回答被网友采纳
第2个回答  2018-11-07
反复利用短除法,参考代码如下:
#include<stdio.h>

int main()
{
long n,t;
int sign=1;
scanf("%ld",&n);
t=0;
if(n<0){n=-n;sign=-1;}
while(n>0){
t=t*10+n%10;
n=n/10;
}
t=sign*t;
printf("%ld",t);
return 0;
}
第3个回答  2018-11-08
dim s as string s=inputbox("输入一个数字") msgbox "你输入的是:" & s & "倒置后是:" strreverse(s)
第4个回答  2018-11-07
for(表达式1;表达式2;表达式3)
for语句的括号里有3个表达式,表达式1是初始值,表达式2是循环条件,成立时循环,表达式3时变化量。
这里是表达式1和3为空,因为表达式1的n的初始值时由输入键入,所以这里为空。表达式3的n的变化量,是通过循环里的计算n/=10;来变化的,所以这里也为空。
望采纳。。。。。。
相似回答