问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言大神求破。。。 输入一个实型数,输出它整数部分的位数。

发布网友 发布时间:2022-05-01 16:52

我来回答

5个回答

热心网友 时间:2022-06-19 20:23

将这个浮点数强制为整型赋给一个int型变量,然后用10去除这个int型变量,几次能除到结果为0就是几位。代码如下:

#include "stdio.h"
int main(int argc,char *argv[]){
int n,t;
double x;
printf("Input x(float,x>=0)...\nx=");
if(scanf("%lf",&x)!=1 || x<0 || x>0x7FFFFFFF){//非负整型范围内
printf("Input error, exit...\n");
return 0;
}
for(n=(int)x,t=0;n;n/=10,t++);//n是整数部分,t记录位数
printf("The integer part of %g is(are) %d digit(s).\n",x,t);
return 0;
}

运行样例如下:

热心网友 时间:2022-06-19 20:24

void main(){
float a;
int b,c;
scanf("%f",&a); //输入一个实数存在a变量中

b=a; //强制转换,直接把浮点数变量的值赋给整数变量,直接得到整数部分
for(int i=1,c=b;c<10;i++){ //备份整数部分到c变量,如果c变量的值小于10,那说明已经算出整数 //部分的个数了。i变量的值就是整数部分的位数
c/=10; //c=c/10; 以变量的值除于10,得到的整数部分再赋给c变量,执行完这句后,c的 //值就不再是b了

}
printf("输入的实数为%f,整数部分为%d, 整数部分的位数为%d",a,b,i);
}追问输入的实型数有可能是负数怎么破,比如输入-82.5得到2

追答一样可以啊

热心网友 时间:2022-06-19 20:24

如果你不是新手的话,应该这样做,得到这个实型数例如 是33.456然后强制转换成整数 变成33然后不停地对10取模,知道结果为0退出循环,统计循环的次数,就说明是几位!

#include <stdio.h>

int main(void)
{
//printf("Hello Linux\r\n");

float dNum =0.0;

puts("输入一个实数");
scanf("%f",&dNum);

int num = (int)dNum;
int times = 0;
while(num)
{
times++;
num /= 10;
}


printf("整数位数为%d\r\n",times);

return 0;
}

追问输入的实型数有可能是负数怎么破,比如输入-82.5得到2

追答先变成正数

热心网友 时间:2022-06-19 20:25

#include<stdio.h>

main()
{
double a=0.0;
int b=0;
int i=1;

printf("请输入一个实型数: ");
scanf("%lf",&a);
b=a;
while(b/10>0)
{
i++;
b=b/10;
}
printf("整数的位数是%d\n",i);
}追问输入的实型数有可能是负数怎么破,比如输入-82.5得到2

追答while里面改成b/10!=0,负数也能处理

热心网友 时间:2022-06-19 20:25

#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
char a[20],i,l,k,n=0;
int m=0;
while(1)
{

printf("请输入一个数!\n");
scanf("%s",a);
n=0;
k=0;
l=0;
for(i=0;i<strlen(a);i++)
{
if(((a[i]>='0')&&(a[i]<='9'))||(a[i]=='.'))//判断输入的只能是数字和小数点
{
if(a[i]=='.') //判断输入的小数点次数,为后面判断小数点输入多了做判断
{
k++;
l=n;
}

n++;

}

}

if(n==strlen(a)&&k<=1)//输入的全部是数字并且最多只有一个小数点
{

printf("你输入的正整数位数为:%d\n", l);
}
else
printf("不全部是数字,有其余字符");
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
康复者的血清中含有什么免疫分子 血清里面有什么 走读的定义在哪些教育阶段适用? PostgreSQL修改数据库表的列属性操作 Ubuntu调整postgresql默认路径 ubuntu – Postgresql:更改默认数据路径 刘邦几个老婆刘邦老婆吕雉和戚夫人的不同结局 刘邦几个老婆?. 如何防止父母在微信群里抢红包? 有哪些适合夏天选择的长裙款式值得推荐? 人力资源管理如何走向“价值创造” C语言:要求输入一个数,输出这个数小数点后的位数 从键盘上输入一个整数,分别输出它的个位数、十位数和百位数。 有没有好的人事管理系统的欢迎光临的背景图 c语言怎么输入一个数后并输出这个数的最后一位数? 从键盘输入一个正整数,要求用循环的方法按逆序依次求得并输出该整数的各个数位,并输出该整数的位数 输入一个数后,输出其整数部分的位数(例如输入123.4,则输出3;输入-0.6则输出0)。_百度问一问 输入一个整数,输出它的位数以及各位数之和。用C语言完成~简单一点~我是新手,麻烦了 输入个整数后,输出该数的位数。(若输入1234输出4)的c语言程序怎么写? c语言怎么将输入一个数输出其位数 梦到捡到的东西包红指甲 前男友有新女朋友把我快手拉黑了,微信删除了? 前男友拉黑我微信,然后两周后又拉出来,第二天又把我删除了,啥意思 前男友说和我适合做朋友,分手一个多星期,我已经渐渐接受了,然后他突然把我电话删了并拉黑,微信也删了 前任拉黑微信删除QQ添加被拒如何挽回? 如果前任把你的微信拉黑删除了,记住一定要这样做 前男友生气了把我微信删除电话拉黑可是我爱他怎么办? 前男友只留了我的微信好友 ,但是屏蔽了我 ,其他联系方式都删掉 拉黑了,他怎么想的? 前任删除QQ拉黑微信 这是什么意思? 前任拉黑微信是不是很讨厌对方了? 理财七日年化百分之三点三,一万块一年增值多少? 从键盘输入一个三位整数,分别输出该数的个位数字,十位数字,百位数字,c语言,求急啊 在java输入一个整数,输出此数为几位数 余额宝七日年化收益率3.5670,一万元一天收入多少呢? c语言:任意输入一个整数 判断它的位数 输出各个位上的数。高手帮忙给个程序!! 编写程序,输入一个三位数,分别输出该数的个位、十位、百位。&#160; 编写一个函数,实现随机输入一个整数,计算出该整数的位数并输出. 卡片相机摄影技巧 卡片相机如何使用广角拍摄 人力资源的内容 冬天喝乌龙茶好吗 怎样用卡片机照出漂亮的照片? 什么季节喝乌龙茶最好。。 如何做好日常人力资源管理工作 如何用有全手动功能的卡片机拍出虚化背景和星芒效果? 我国茶叶品种繁多,功效也不同,我们应该根据不同的季节喝不同的茶吗? 卡片相机平时怎样保养 ios14怎么添加微信扫一扫 怎么用卡片机照出好照片? 怎么设置卡片相机用来照一寸照片?