-
判断一个整数的位数 !!为什么超过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写文章