习题6-6 使用函数输出一个整数的逆序数
要求:
本题要求实现一个求整数的逆序数的简单函数。
int reverse( int number );//这个函数实现
1.判断一个整数是多少位数:
number=number/10;(通过循环这个来判断,执行一次,位数就减一,减的是最右边的数字)
#include<stdio.h>
int reverse(int number){
int mode;
int sum;
int shu=0;
while(number!=0){ //if只有一次,while才能循环
number=number/10;//输入一个整数,它的长度怎么判断
shu++;
printf("执行一次\n");
}
printf("这个数是%d位",shu);
}
int main(){
int n;
scanf("%d",&n);
reverse(n);
return 0;
}
效果:
2.使用函数输出一个整数的逆序数:
原理:就是利用折分数值的每一位数,每一位数乘以10的对应的次方,再相加。就组和新数值。
mode=(temp%10)*pow(10,shu-1); //取数值最右的一个数字,进行乘方//
sum=sum+mode;
shu–;
temp=temp/10;//减去最右边的位数。
#include<stdio.h>
#include<math.h>
int reverse(int number){
int mode;
int sum=0;
int shu=0;
int i;
int temp;
temp=number;
while(number!=0){ //if只有一次,while才能循环
number=number/10;//输入一个整数,它的长度怎么判断
shu++;
//printf("执行一次\n");
}
printf("这个数是%d位\n",shu);
while(temp!=0){
// printf("执行一次\n");
mode=(temp%10)*pow(10,shu-1); //取数值最右的一个数字,进行乘方,
//shu-1是10的几次方。
sum=sum+mode;
shu--;
temp=temp/10;
}
printf("这个数的倒序是%d",sum);
}
int main(){
int n;
scanf("%d",&n);
reverse(n);
return 0;
}