C语言编程求小数的最后一位

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言编程求小数的最后一位相关的知识,希望对你有一定的参考价值。

输入一个小数,输出该小数的最后一位数字及它是小数位的第几位。
比如输入3.2,则输出2,1;
输入65.2345,则输出5,4;
输入-9.02147,则输出7,5。
请问用C语言编程怎么实现?

可以以字符串的形式将小数存储起来,然后输出,源代码如下,不知道能不能解决你的问题:
#include <stdio.h>
#include <malloc.h>

void main()

char *a;//用以存储输入的小数
char ch;
int i=0;
int j=0;
a=(char*)malloc(sizeof(char));
printf("请输入一个小数,以回车换行结尾:\n");
while ((ch=getchar())!='\n')//将小数存储起来,可以用a寻址

a[i]=(char)malloc(sizeof(char));
a[i++]=ch;

a[i]='\0';//小数结束标志
i=0;

while (a[i++]!='.')

if(a[i]=='\0')

printf("输入为非小数\n");
getchar();
return;

continue;//可以不要这条语句

while (a[i++]!='\0')//统计共有多少位小数

j++;

printf("小数最后一位数字为:%d\t共有小数[%d]位\n",a[i-2]-'0',j);//其实可以%c与a[i-2]对应的
getchar();
参考技术A 下面的程序是可以做到题目要求的。直接输入为字符串,再对字符串进行操作,基本上用指针。
#include <stdio.h>
void main()

char a[100],*p,*q;
scanf("%s",&a);
for(p=q=&a[0];*p&&*p!='.';p++,q++);
for(;*(p+1);p++);
printf("%s : %s, %d\n",a,(char*)p,p-q);
参考技术B 好像有问题,想想

怎样在c语言除法中保留小数点?

下面的C语言程序怎么样改动,才能使除法有小数,我是新手,作业!!!求大神指导

#include <stdio.h>

int main()

float c;//首先要把你要求的数定义成浮点型,通俗的讲就是float和double就是小数型; 

int a=5,b=3;//int整数型,它自动把小数去掉; 

c=1.0*a/b;//最重要的是要乘以1.0; 

printf("%.2f",c);//%.2f;%后面的是点(.)几,就保留几位小数; 

return 0;

希望能帮到你,望采纳;

参考技术A 两个整数的加减乘的结果都是整数,用"%d"格式输出没有问题,但当是除法运算时,若不能整除,所得的商必然是浮点数,这是用"%d"输出时,结果就是零,可以这样改进你的代码:
printf(".2lf\n",1.0*a/b);//.2是告诉系统只输出2位小数,第三位四舍五入,lf是说用浮点格式输出,1.0*a是说,先将a转换为浮点数再进行运算。
参考技术B 怎样在c语言除法中保留小数点?
将最后一行printf("shang:%d\n",a/b);改为printf("shang:%f\n",a/b);
作为输出的格式化符%f,它还具有指定输出多少位小数的功能,如%0.2f保留两位小数。
具体可以自行百度C语言格式化符。
参考技术C 第三位四舍五入,lf是说用浮点格式输出,1.0*a是说,先将a转换为浮点数再进行运算。 参考技术D printf("%f\n", (double)a/b);

以上是关于C语言编程求小数的最后一位的主要内容,如果未能解决你的问题,请参考以下文章

c语言如何判断一个数组的最后一位的下标,求大神

关于用C语言求一个小数求小数点后面的位数多少的问题,求大神解答。

用c语言编程求 18位 身份证的验证码

JavaScript中如何保留一位小数;

C语言中如何保留一位小数点

C语言中如何保留一位小数点?