c语言编程,:求变一个程序,输入一个double型数据,经过运行后可以得到这个数的个位数。因为是double型,
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言编程,:求变一个程序,输入一个double型数据,经过运行后可以得到这个数的个位数。因为是double型,相关的知识,希望对你有一定的参考价值。
,:求变一个程序,输入一个double型数据,经过运行后可以得到这个数的个位数。因为是double型,所以%这个运算就用不了了,事情一下子就卡住了,求大师来帮忙啊。如果直接求不出来,那么还可以稍微放宽。因为数字比较巨大,所以我才用了double型,其实都是正整数的,可就是%这个运算没办法进行。。。。。求大师,高手们来帮忙,谢谢啦
很简单 我告诉你 把double的存入char 字符数组然后从后向前找 . 找到 . 再向前一位就是个位了
/////////////////下面这个方法很节省内存和cpu///////////////////////
123
个位数为:3。
Press any key to continue
123.44
个位数为:3。
Press any key to continue
#include<stdio.h>
#include "string.h"
main(void)
int nLen;
char ge;
char doub[50];
gets(doub);
nLen = strlen(doub);
ge = doub[--nLen];
for (;nLen>=0;nLen--)
if (doub[nLen]=='.')
ge = doub[nLen-1];
break;
printf("个位数为:%c。\n",ge);
追问
可是我那个数其实i是个整数,这是因为int型放不下,所以改用double型,这样一来这个数应该是没有小数点的啊,那么你这饭方法。。。。。?啊抱歉,我真不懂,若为不妥之问请见谅。。。
追答没有小数点的情况你没看见我贴的运行结果吗?
我肯定要考虑没有.的情况
不管有没有小数点 我这个程序都能准确找出 个位数
void main()
double a;
int b;
scanf("%lf",&a);
b=((int)(a))%10; //求个位数
printf("%d\n",b); //输出个位数
追问
你这样把double强制转换为int,如果数字如果数字很大的话,应该会损失精度的吧?这样来说,岂不是又不行了。。。抱歉,我真不懂,若为不妥之问请见谅。。。
追答1 只要你输入的数在double表示的范围内,这个程序就没有问题。
2 计算机中的数都有表示范围,适用于任何范围的程序是不存在的。
#include <cstdio>
#include <windows.h>
using namespace std ;
int main ()
double x = 123.456 ;
int y = (int)x % 10 ;
printf("%d\n" , y) ;
system("pause") ;
追问
你这样把double强制转换为int,如果数字如果数字很大的话,应该会损失精度的吧?这样来说,岂不是又不行了。。。抱歉,我真不懂,若为不妥之问请见谅。。。
追答有道理,不过个位应该不受影响吧,为了准确,有两个类似方案。
1、用fmod (浮点数取模)
#include
#include
#include
using namespace std ;
int main ()
double x = 123.456 ;
int z = (int)fmod(x , 10.0) ;
printf("%d\n" , z) ;
system("pause") ;
2、用long long 来转。其实像你说的整数太大的情况,应该直接用long long的。
#include
#include
using namespace std ;
int main ()
double x = 123.456 ;
int y = (long long)x % 10 ;
printf("%d\n" , y) ;
system("pause") ;
#include<stdlib.h>
#include<string.h>
double c;
int a;
int main()
scanf("%lf",&c);
a=int(c);
a%=10;
printf("%d\n",a);
输入double类型,把它int成整数,直接%追问
你这样把double强制转换为int,如果数字如果数字很大的话,应该会损失精度的吧?这样来说,岂不是又不行了。。。抱歉,我真不懂,若为不妥之问请见谅。。。
C语言怎样接收double类型变量输入
参考技术A我们在使用C语言编写程序的时候,经常需要使用double类型,那么C语言如何接收double类型的数据呢?下面我给大家分享一下。
工具/材料
Dev C++
- 01
首先我们打开Dev C++软件,新建一个C语言项目,如下图所示
02接下来在C语言文件中通过scanf让用户输入数字,接着在打印数字,注意这里用的lf接收double数据类型,如下图所示
03然后我们运行编写好的C语言文件,如下图所示
04最后在弹出的CMD界面中我们就可以输入double类型的数据了,程序接收到数据以后就会进行输出,如下图所示
以上是关于c语言编程,:求变一个程序,输入一个double型数据,经过运行后可以得到这个数的个位数。因为是double型,的主要内容,如果未能解决你的问题,请参考以下文章