当前位置:   article > 正文

给出一个32位有符号整数,你需要将整个整数中每位上的数字进行反转。_给你一个32位整数d

给你一个32位整数d

代码如下:

  1. #include <stdio.h>
  2. #include <math.h>
  3. int main(int argc, const char *argv[])
  4. {
  5. int sum = 0;
  6. int m = 0;
  7. int n = 0;
  8. int i = 10;
  9. int temp = 0;
  10. scanf("%d",&sum);
  11. temp = sum;
  12. /*if(sum < -2147483648 || sum > 2147483647){
  13. printf("输入数字错误,请重新输入\n");
  14. return -1;
  15. }*/
  16. if((int)fabs(sum) > (int)pow(10,9)){
  17. if(sum>=0){
  18. while(i>0){
  19. i--;
  20. if(sum%10 > ((int)pow(2,31) - 1)/((int)pow(10,i))){
  21. printf("输入数字倒叙错误,请重新输入\n");
  22. return -1;
  23. }
  24. sum = sum/10;
  25. }
  26. }else if(sum<0){
  27. while(i>0){
  28. i--;
  29. if(sum%10 < (-(int)pow(2,31))/((int)pow(10,i))){
  30. printf("输入数字倒叙错误,请重新输入\n");
  31. return -1;
  32. }
  33. sum = sum/10;
  34. }
  35. }
  36. }else{
  37. while(temp != 0){
  38. m = temp%10;
  39. temp = temp/10;
  40. n = (m + n)*10;
  41. }
  42. n = n/10;
  43. printf("%d\n",n);
  44. }
  45. return 0;
  46. }

终端执行结果:

  1. ubuntu@ubuntu:C_base$ ./a.out
  2. -35664
  3. -46653
  4. ubuntu@ubuntu:C_base$ ./a.out
  5. 1864858
  6. 8584681
  7. ubuntu@ubuntu:C_base$ ./a.out
  8. -1111142753
  9. 输入数字倒叙错误,请重新输入
  10. ubuntu@ubuntu:C_base$ ./a.out
  11. 2437752533
  12. 输入数字倒叙错误,请重新输入
  13. ubuntu@ubuntu:C_base$ gcc 18_test.c -lm

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码大牛/article/detail/60490
推荐阅读
相关标签
  

闽ICP备14008679号