c语言实数除法怎样保留小数部分

如题所述

#include<stdio.h>

#include<string.h>

char str[51];

int n,count,i;

int main()

{    scanf("%s",&str);

n=strlen(str);

count=1;

for(i=1;i<n;i++)

{if(str[i]!=str[i-1])

count++;

else continue; }

double ans;

ans=(float)n/count;

printf("%.2f",ans);}

printf("%.2f",ans);        是保留两位小数

n和count都是int型,用float强制转换浮点型,才能得出带小数的结果!!

扩展资料

C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

C/C++编程语言中,int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境大小不同。

语法

INT(number)

Number 需要进行向下或者向上舍入取整的实数。

说明

int函数可用floor函数代替

int(number)=floor(number,1)

参考资料C语言_百度百科int函数_百度百科

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2019-11-14

首先C语言中没有“实数”的定义,但是可以通过定义变量类型和强制类型转换来保留小数部分。

1、定义类型变量,代码如下:

#include<string.h>

int main()

{

double a = 7;

int b = 2;

double c = a / b;

printf("c = %f\n", c);

return 0;

}

2、强制类型转换,代码如下:

#include<string.h>

int main()

{

int a1 = 9;

int b1 = 4;

double c1 = (double) a1 / b1;

printf("c1 = %f\n", c1);

return 0;

}

扩展资料

在C中主要数据类型分为4种,分别为:整型(int -- 占2个字节,输出用%d),字符型(char -- 1个字节,输出用%c),单精度浮点型(float -- 2个字节,输出用%f),双精度浮点型(double -- 4个字节,输出用%lf)。

printf(),调用头文件<stdio.h>中的printf函数,用于输出函数的值。当想要输出某个变量时,需要先告诉他输出格式。

参考资料:

int数据类型——百度百科

强制类型转换——百度百科

本回答被网友采纳
第2个回答  推荐于2017-10-10
在C语言中,
3/2=1
是取整运算
要保留小数
需要
(3*1.0)/2=1.5本回答被提问者采纳
第3个回答  2011-07-12
强制类型转换
a,b为int型
c=(float)a/b;
printf("%.2f",c);
c就为float型,比如5/3=1.66
想要几位就改成%.nf.
希望能帮到你。
第4个回答  2011-07-13
y = 1.0/5.0
因为如果像你那样写的话先作int型数的运算,这时小数部分就丢了,然后转换为double型的,加小数点后,默认为double型数的运算了,当然小数就不会丢啦

c语言实数除法怎样保留小数部分
首先C语言中没有“实数”的定义,但是可以通过定义变量类型和强制类型转换来保留小数部分。1、定义类型变量,代码如下:include<string.h> int main(){ double a = 7;int b = 2;double c = a \/ b;printf("c = %f\\n", c);return 0;} 2、强制类型转换,代码如下:include<string.h> int...

c语言实数除法怎样保留小数部分
【答案】:在C语言中,3\/2=1是取整运算要保留小数需要(3*1.0)\/2=1.5

c语言实数除法怎样保留小数部分
printf("%.2f",ans); 是保留两位小数 n和count都是int型,用float强制转换浮点型,才能得出带小数的结果!!

C语言中……“计算结果保留三位小数。”怎么表示?
在C语言中,如果你需要将计算结果保留三位小数进行输出,可以使用printf函数配合格式控制符来实现。例如,表达式`printf("%7.3f", 100.0\/3.0)`,这里的"7"代表总共七位输出,"3"则指定小数点后保留三位,第四位会根据四舍五入规则决定。小数点前的空位会用空格填充,以确保总宽度为7。对于浮点...

C语言中的除法,怎么才能得到有小数点的确切数字
5\/2是整型相除,结果就是整型 如果你把除数或者被除数改为浮点型的话 然后输出加以控制如:printf("%0.1f",x); 结果为2.5 得到的结果就会含有小数!include<stdio.h> void main(){ float a=5.0;int b=2;printf("%0.1f",a\/b);} ...

c语言中,实数的小数部分怎样储存在内存中的?乘二取余,怎样取?
乘以2,然后,取整数部分 比如0.56 0.56X2=1.12 0.12X2=0.24 0.24X2=0.48 0.48X2=0.96 0.96X2=1.92 0.92X2=1.84 ...0.56=0.100011...

实数四舍五入保留一位小数(C语言)
include <stdio.h> #include <math.h> main() { double a=1.25; int n = 1; a = (double) ( (int) (a * pow(10,n) + 0.5)) \/ pow(10,n); printf("%.1f\\n",a); }

c语言中如何输出保留两位小数的数据?
cout<<setiosflags(ios::fixed)<<setprecision(2);\/\/需要头文件#include <iomanip> 然后再输出实数类型变量即可以保留2位小数输出了,当然你要保留三位小数,setprecision(3)就行。setprecision是指设置输出精度,当没有 cout<<setiosflags(ios::fixed)时,输出格式是数据的有效位数,例如 float a = 123...

C语言 实数的小数部分
void main(void){ char num[101]="111111.12345678900012345678900",i;printf("Enter a real number(length<=100 )\\nnDec=");scanf("%s",num);for(i=strlen(num)-1;i>=0;i--)if(num[i]!='0'){ num[i+1]='\\0';break;} if(num[i]!='.' && i>=0){ printf("0");for(i...

C语言中……“计算结果保留三位小数。”怎么表示?
printf("%7.3f",100\/3.0);表示结果占七位,小数部分占3位,这样就可以了,并且小数点后第三位是四舍五入的结果。例如:C语言中浮点数输出精确到两位小数的语句如下:double a=2.0;printf ("%.2f", a);\/\/其中.2指明两位小数 说明:如%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, ...

相似回答