/*给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形

/*给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形
式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零.*/

输入负数和开头为1的数就是错的,哎哎哎哎哎

#include<stdio.h>
#include<math.h>

int jisuan(double t)
{
int n=0;
int b;
do
{ b = t/10;
t=b;
n++;
}while(b>1);
return n;
}

main()
{

double t;
double b;
int n=0;
int x;
int s;
int gw;
int gongshu = 0;
int i=0;
scanf("%lf", &t);

n=jisuan(t);

// 问题:1,1开头!2,负数!

if(t>0)
{
for(;n>0;n--)
{
x = pow(10, n-1);
s = t/x;
printf("s=%d\n", s);

gw = s * pow(10, i);

printf("gw=%d\n", gw);

t = t - s* pow(10, n-1);
i++;
gongshu = gw + gongshu;
}

printf("%d", gongshu);
}
else
{
t=0-t;
for(;n>0;n--)
{
x = pow(10, n-1);
s = t/x;
printf("s=%d\n", s);

gw = s * pow(10, i);

printf("gw=%d\n", gw);

t = t - s* pow(10, n-1);
i++;
gongshu = gw + gongshu;
}

printf("-%d", gongshu);
}
}

我感觉你想得太复杂了,不知道这个符不符合你的要求:

#include <stdio.h>
int main() {
    int i = 0, oldNumber, newNumber = 0;
    scanf("%d", &oldNumber);
    while(oldNumber != 0){
        newNumber *= 10;
        newNumber += oldNumber % 10;
        oldNumber /= 10;
    }
    printf("sum = %d", newNumber);
    return 0;
}

当然,这个整数是不能大于int的最大值2147483647,有哪里看不懂的可以继续问我。

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网