判断一个整数的位数 !!为什么超过10位数 判断错误?

2025-06-10 00:56:04 2014德国世界杯

社区

新手乐园 帖子详情 判断一个整数的位数 !!为什么超过10位数 判断错误? zxl_99 2016-08-04 06:55:59 #include

int main (void)

{

int num;

int dig;

do{

printf("请输入一个非负整数:");

scanf ("%d", &num );

if (num < 0)

puts ("请不要输入负数");

} while (num<0);

dig = 0;

do {

num = num / 10,

++dig;

}

while (num > 0);

printf("该整数的位数是%d\n", dig);

return 0;

}

...全文

881 8 打赏 收藏 判断一个整数的位数 !!为什么超过10位数 判断错误? #include int main (void) { int num; int dig; do{ printf("请输入一个非负整数:"); scanf ("%d", &num ); if (num < 0) puts ("请不要输入负数"); } while (num 0); printf("该整数的位数是%d\n", dig); return 0; } 复制链接

扫一扫 分享 转发到动态 举报

写回复 配置赞助广告取 消

确 定

用AI写文章 8 条回复 切换为时间正序 请发表友善的回复… 发表回复 打赏红包 需支付: 0.00 元 取 消 确 定 Calvin-Db 2016-09-09 打赏举报 回复 超过int范围了 simbley 2016-08-05 打赏举报 回复 超过了int限定的范围,上溢了~。 paschen 2016-08-04 打赏举报 回复 超过了 int 能表示的范围了,可以使用 long long starytx 2016-08-04 打赏举报 回复 因为任何类型的数据都有最小最大值的,32位中一个int表示的范围是-(2的31次方)也就是-2147483648到正的2147483647,无符号的int也就是0~2的32次方=4294967295,超过这个范围的都属于数据溢出了 小灸舞 2016-08-04 打赏举报 回复 上溢了,超过int的范围了,用long long,如果还不行就用数组来存储 lm_whales 2016-08-04 打赏举报 回复 int (32Bits) 只能表示10位数

pow(2,31) = 2147483648,

pow(2,32) = 4294967296

也就是最多10位10进制数。

不论是unsigned int,还是int 不可能超过10位10进制数。

如果超过了,请用 long long 或者 unsigned long long 表示

更多,定义 大整数存储 Myotonin 2016-08-04 打赏举报 回复 超过了int的上限了。 赵4老师 2016-08-04 打赏举报 回复 仅供参考:#include

#include

#define MAXLEN 1000

char a1[MAXLEN];

char a2[MAXLEN];

static int v1[MAXLEN];

static int v2[MAXLEN];

static int v3[MAXLEN];

int i,j,n,L,z;

void main(void) {

scanf("%d",&n);

for (j=0;j

scanf("%s%s",a1,a2);

L=strlen(a1);

for (i=0;i

L=strlen(a2);

for (i=0;i

for (i=0;i

for (i=0;i

if (v3[i]>=10) {

v3[i+1]+=v3[i]/10;

v3[i]=v3[i]%10;

}

}

printf("Case %d:\n", j+1);

printf("%s + %s = ", a1, a2);

z=0;

for (i=MAXLEN-1;i>=0;i--) {

if (z==0) {

if (v3[i]!=0) {

printf("%d",v3[i]);

z=1;

}

} else {

printf("%d",v3[i]);

}

}

if (z==0) printf("0");

printf("\n");

}

}

//Sample Input

//3

//0 0

//1 2

//112233445566778899 998877665544332211

//

//Sample Output

//Case 1:

//0 + 0 = 0

//Case 2:

//1 + 2 = 3

//Case 3:

//112233445566778899 + 998877665544332211 = 1111111111111111110

1017: 判断正整数位数 C语言 1017: 判断正整数位数

时间限制: 1 Sec 内存限制: 128 MB

提交: 23987 解决: 15427

[状态] [讨论版] [提交] [命题人:admin]

题目描述

给定一个不多于5位的正整数,判断它是几位数,并输出。

输入

一个不多于5位的正整数。

输出

输出正整数的位数,单独占一行。

样例输入 Copy

111

样例输出 Copy

3

#include

#include

int main()

{

int n, c++编写函数判断整数的位数 定义一个函数f来判断整数的位数,用循环来实现。对一个大于0的int整数除10,每次做除法,计数器就+1,直至整数位为0。计数器t所得到的便是这个整数的位数。

#include

using namespace std;

int f(int n){

int t;

for(t=0;n>0;t++)

{

n/=10;

}

return t;

}

int main(){

int n;

cout<&. 1017: 判断正整数位数 Python 1017: 判断正整数位数

时间限制: 1 Sec 内存限制: 128 MB

提交: 23989 解决: 15429

[状态] [讨论版] [提交] [命题人:admin]

题目描述

给定一个不多于5位的正整数,判断它是几位数,并输出。

输入

一个不多于5位的正整数。

输出

输出正整数的位数,单独占一行。

样例输入 Copy

111

样例输出 Copy

3

#1017: 判断正整数位数

n = int(input())

a = len(str(n))

#先用str将n转化为字符串,

# 再用le C技能树:判断正整数的位数 解析:判断正整数位数通常采用/运算符,通过循环语句让正整数除10,累加被除的次数得到位数。输入一个正整数,判断其一共包含多少位,请选出错误答案。 C语言:读入一个整数并输出该整数的位数! 方法1:

#include

int main()

{

long n , m;

int count = 0;

printf("请输入一个整数:");

scanf("%ld",&n);

m = n;

if(n<0){

n = -n;

}

do

{ n = n/10;

count++;

}while(n!=0);

printf("整数%ld有%d位数\n",m ,count);

return 0;

}

...

新手乐园

33,322

社区成员

41,774

社区内容

发帖 与我相关 我的任务 新手乐园 C/C++ 新手乐园 复制链接

扫一扫 分享 确定 社区描述 C/C++ 新手乐园 社区管理员

加入社区

获取链接或二维码

近7日

近30日

至今

加载中

查看更多榜单

社区公告

暂无公告 试试用AI创作助手写篇文章吧

+ 用AI写文章

最新发表
友情链接