
#include <stdioh>
#include <stringh>
void main()
{
char str[1000];
int i,n;
gets(str);
n=strlen(str);
for(i=0;i<n;i++)
{
if(str[i]<48||str[i]>57||(int)str[0]==48)
{
printf("\n输入有误,不是整数。\n\n");
break;
}
else if(i>=n-1)
printf("\n输入的整数是%d位数。\n\n",n);
}
}
运行示例:
显示取整,该办法只是显示为整数真正数值还是有小数位的。选择数据后-右键-设置单元格格式-数值-小数位设置为0即可。
用函数,如果int,四舍五入取整 =ROUND(A1,0),截去小数取整=ROUNDDOWN(A1,0) =FLOOR(A1,1) =TRUNC(A1),以int为例:
求一个整数有几位可以利用逐步整数的方法。
具体描述:
C++的整数除有个特征:只得到商,舍弃余数,例如25/2得到2;
因此一个整数除以10之后就被本来少了一位数;
程序以及解释如下:
#include <iostream>using namespace std;
void main()
{
int num;
cout << "请输入一个整数";
cin >> num;
int count = 0; //计数器
while (num != 0) //当不是0就循环
{
count++; //计数器加1
num = num / 10; //去掉个位赋值给自己
}
cout << "是" << count << "位数" << endl;
其实不用循环也可以做到,对其求以10为底的对数,然后取整数部分再加1,就是这个整数的位数
下面是代码:
#include<stdioh>
#include<mathh>
void main()
{
int n;
printf("please input an integer:");
scanf("%d",&n);
printf("%d的位数是%d\n",n,(int)log10(n)+1);
}
楼上的办法都很全了,10取1可以直接通过单元格设置来能,设置小数位数。11-19取2就是向上取整了,使用=CEILING(目标单元格,1),不用使用round函数,那个是向下取整的。
代码如下:
#include<stdioh>
int main()
{
int a,b;
int i;
printf("请输入一个数字:");
scanf("%d",&a);
b=a;
for(i=0;a>1;i++)
{
a=a/10;
}
printf("%d是%d位数\n",b,i);
}
扩展资料:
思路详解:
在C语言中,经常会用到以整数相除来确定一个整形数字的每一位的具体数字是多少,同理,此处可用整数相除来判断一个数的位数。
首先,使用scanf函数获取这个数字的值,且赋给变量b,作一个备份。
接着,确定核心思路为,当一个数整除10,第一次结果为1时,这个数是一个个位数。因而,以其作为循环内的主体。
得到了for(i=0;a>1;i++) a=a/10; 这样的代码,最后,输出结果即可。
以上就是关于C语言怎么判断,整数的位数全部的内容,包括:C语言怎么判断,整数的位数、excel中如何对数字取整百位、c++求一个整数有几位等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)