Tep 发表于 2022-4-5 22:21:20

超过int范围怎么办??

请问这个程序,当输入10个9时,输出就会出现问题,这个改怎么解决,{:10_266:} {:10_266:}
#include<stdio.h>
{
        long long int result,x,d,a;
        d = 0;a = 0;
        result = 0;
        printf("please input a integer:");
        scanf("%d",&x); a = x;        //令a = x 为后面的输出保留 x 的值
        while(x!=0)
        {
                d = x % 10;        // 这步得到最右边一位
                result =result+(d*d);
                x = x / 10;                //去掉最右边一位
        }
        printf("%d的平方和为%d\n",a,result);
        return 0;
}

ba21 发表于 2022-4-5 22:27:11

你要提供的是题目,而不是超过怎么办。
无符号长整型你觉得够你用不?

isdkz 发表于 2022-4-5 22:27:27

long long int 格式化应该用 %lld

#include<stdio.h>
int main()
{
      long long int result,x,d,a;
      d = 0;a = 0;
      result = 0;
      printf("please input a integer:");
      scanf("%lld",&x); a = x;      //令a = x 为后面的输出保留 x 的值
      while(x!=0)
      {
                d = x % 10;      // 这步得到最右边一位
                result =result+(d*d);
                x = x / 10;                //去掉最右边一位
      }
      printf("%lld的平方和为%lld\n",a,result);
      return 0;
}

Tep 发表于 2022-4-5 22:27:30

这里是int 出现问题,还是%d 出现问题

Tep 发表于 2022-4-5 22:28:54

ba21 发表于 2022-4-5 22:27
你要提供的是题目,而不是超过怎么办。
无符号长整型你觉得够你用不?

题目就是
随机输入一个数,求出各位数字的平方和

isdkz 发表于 2022-4-5 22:30:01

Tep 发表于 2022-4-5 22:28
题目就是
随机输入一个数,求出各位数字的平方和

你用 long long int 就得用 %lld,int 才是用 %d

傻眼貓咪 发表于 2022-4-5 22:30:03

#include <stdio.h>
int main() // <------------------ int main() ------------------
{
    long long int result, x, d, a;
    d = 0; a = 0;
    result = 0;
    printf("please input a integer:");
    scanf("%lld", &x); a = x; // <------------------ %lld ------------------
    while(x!=0)
    {
      d = x % 10;
      result = result + (d * d);
      x = x / 10;
    }
    printf("%lld的平方和为 %lld\n", a, result); // <------------------ %lld ------------------
    return 0;
}

Tep 发表于 2022-4-5 22:31:19

isdkz 发表于 2022-4-5 22:27
long long int 格式化应该用 %lld

谢谢大佬。问题解决了,感谢
页: [1]
查看完整版本: 超过int范围怎么办??