C语言中76除以10=7,为什么不四舍五入得8?
1714÷3÷6+76÷18+10÷6÷3
=1714÷18+76÷18+10÷18
=(1714+76+10)÷18
=1800÷18
=100~
这样,你把这个小数,乘以10的8次方,然后对结果取整(也就是强制转化为int型),然后对这个取整后的int型,再除以10的8次方,就搞定了.
如果你想四舍五入,比方说,想要3.14159,四舍五入取小数点后3位,
你可以将3.14159*1000,得到3141.59,然后再加上0.5,得到3142.09,然后再取整(强制转化为INT型),得到3142,然后再除以1000,就得到你想要的小数点后3位的四舍五入了,就是3.142.
如果不想要四舍五入,直接截取,就不要加上0.5
76/10 = 7
76%10 = 6
76/10,的含义是取整除法,就是取商的整数部分.7.6的整数部分就是7.
两整数做除法,结果为正数就直接舍掉小数部分,因为C语法要求运算结果和运算数为同类型数据,也就是都为整数
但如果结果为负数,不同编译器有差别,如-5/2,结果应为-2.5。
一般编译器显示结果为-2,看起来也是直接舍去小数部分,这叫“向零取整”;但也有编译器显示为-3
编程前要先试试,搞清楚编译器运算方法
在C语言中如何判断字符串中第11个数字为'1'\/'0'
if(char[10]=='1')printf("第11个数字是1\\n");else if(char[10]=='0')printf("第11个数字是0\\n");else printf("第11个数字不是0也不是1\\n");
关于C语言程序设计的几道题。学霸们帮一下忙吧。
int a[10]={-12,5,25,33,45,56,76,96,110,115};int n;scanf("%d",&n);int k=4;for (int i=0;i<10;i++){ if(a[k]==n){ printf("%d是该数组的第 %d个数\\n",n,k+1);return 0;} else if(a[k]>n)k=k\/2;else k=(10+k)\/2;} printf("数组中无%d这个数\\n"...
C语言填幻方(不要穷举,要详细讲解)
57 38 19 9 71 52 33 14 76 67 48 29 10 81 62 43 24 5 一般的,令矩阵[1,1]为向右走一步,向上走一步,[-1,0]为向左走一步。则马步可以表示为2X+Y,{X∈{[1,0], [-1,0]},Y∈{[0,1], [0,-1]}}∪{Y∈{[1,0], [-1,0]},X∈{[0,1], [0,-1]}}。对于...
...且百位数字是5的所有正数,我是大一新生,刚接触c语言,求大神...
include<stdio.h>void main(){int i;for(i = 500; i <= 600; i++) \/\/既然要求百位数是5,就没有必要从1开始求了,直接从500开始{if(i%5 == 0 && i\/100 == 5){printf(" %d ",i);}}printf("\\n");}
想知道一下全世界所有语言种类中"我爱你"的写法
rak khun 72乌尔都语:mein tumhay pyar karta hun 73新西兰毛里语:kiahoahai 74印度泰卢固语:neenu ninnu pra mistu\\`nnany 75爱斯基摩语:na gligivaget 76格陵兰岛语:asaoakit 77阿尔尼亚语:dna shume 78威尔士语:rwyndy garu di 79德语:ich liebe dich prescilla 80中文:我爱 ...
c语言问题求解答
while(isdigit(ch)&& ch!=‘#’)\/\/ 拼数 {num=num*10+‘ch’-‘0’; scanf(“%c”,&ch); } a[i]=num;i++; if(ch!=‘#’)scanf(“%c”,&ch); \/\/ 若拼数中输入了‘#’,则不再输入 }\/\/ 结束while(ch!=‘#’)printf(“共有%d个整...
c语言作业 编写一个输出学生成绩等级的程序
c语言:C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序...
汇编X数组数据: X=32,-43,76,95,-1,-78,127,-128,-125,88 按增序排 ...
你的意思是,写两个程序,一个完全用一个主模块,另一个程序用一个主模块,调用子程序的方式?汇编里的子程序不像C语言里的子程序规则那么死,参数怎么传完全由你自己约定。所以其实要求“子程序调用”,写出来的程序,和主模块没什么区别。1. 完全在主模块里完成:dseg segment X db -43, 76, ...
高悬赏 c语言求解析啊。
题中给出的结果前两个不对,最后一个对。正确结果应该是:输入9876543210 输出x1=98,x2=765,y1=4,y2=1 输入98 76 543210 输出x1=98,x2=76,y1=‘ ’,y2=3 输入987654 3210 输出x1=98,x2=765,y1=4,y2=2 解释——2d限制读取2位字符,对应的变量x1=98;%3d限制读取3位字符...
百分号在C语言中是怎样用的?
在C语言里面是 除余 和 格式输出符的作用。求余运算是求前一个整型数据除以后一个整型数据的余数。举例说明:整型数据 int m=10,n=3,k;k=m%n;那么k就等于1;例如:表达式 a % b 就是计算 a 除以 b 得出的余数。而%d,%f等表示输出整型,浮点型数据 举例说明:1.我们要把一个3位数0~999...
霜程八味: 需要将第6位置0、第7位置1,不影响其它位,就需要通过两次逻辑运算实现.先将第6位置0,不影响其它位:GPFDAT &= (~(1<<6)); 再将第7位置1,不影响其它位:GPFDAT |= (1<<7);
兖州市13465748827: 为什么c语言中double(x)/10不对 - ?
霜程八味: 1、这个如果是程序中的一个语句的话,是有错误的可能性,因为x的类型会影响到整个语句的结果,比如 int x=1,那么double (x)/10的结果就是double类型的0.1, 要是程序的意思是将x/10的结果转换成double类型的话那么结果就是0.000000了,因为x/10为0. 2、单从语法上看是没有错误的,在程序内的逻辑就不一定正确了. double (x)/10 的意思是将x先转化成double类型再做除法运算.
兖州市13465748827: c语言中表达式7=4+3为什么是错的? - ?
霜程八味: =在C语言中是赋值,你这个表达式意思就是把4+3赋值给7,但是7已经是个常量了,就会出现问题.不知道你是想实现什么,如果是要比较,如1楼说的用双等于.如果要赋值的话,7要用一个变量代替,如a=4+3,然后再输出printf("%d,a"),如果只是想输出这个表达式,就直接printf("7=4+3")
兖州市13465748827: C语言中取余… - ?
霜程八味: %就是取余数运算,也就是模运算(mod).10/3在C语言里是整除的意思,结果是3 10%3是求余,结果是余数1 10.0/3会转换为两个double型的数相除,答案是3.3333 C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台.
兖州市13465748827: 对C语言中整除运算符的困惑! - ?
霜程八味: 那你错了 ~之前的7/3是因为都是int型 所以只取商 省去余数 而 你的a b都是double型的 他就会变成我们平时的除法 2/10= 0.2
兖州市13465748827: C语言计算 10到1000以内能被4整除十位数是7的所有数之和 - ?
霜程八味: 100以内满足条件的数只有72,76.更大的数就是172,176,…….#include int main() {int s=0,i; for(i=0;i<10;i++) s+=i*20+72+76; printf("%d\n",s); return 0; }
兖州市13465748827: C语言里面的判断语句 - ?
霜程八味: 在C语言中,判断语句的一般格式为 if(expr1) { //some codes } else if(expr2) { //some codes } else if(expr3) ... else { //some codes } //out of check执行时,会依照书写顺序,依次判断各个expr,如果有一个为真,则执行后续的{}内语句,并不再执行后续判断,而是直接从out of check开始执行. else if的数量不限,可以不存在,也可以有任意多组. else同样可以不存在. 每个else 与最其之前最近的没有匹配else的if相结合. 判断执行的语句{}部分,大括号对可以省略,省略后,if仅对其下一语句生效.
兖州市13465748827: 在C语言中f=123456.78以%6.oe输出时为什么结果等于1e十005 - ?
霜程八味: 你这样等于输出指数表示数,保留1位整数+小数点后0位(也就是没有)..所以.也就是1e+005.用下面语句运行看看就明白了.#include <stdio.h>#include <stdlib.h> int main() { float x=123456.78; printf("x=%6.0e\n",x); //保留1位整数+小...
兖州市13465748827: C语言中5%0等于几? - ?
霜程八味: 5%0会产生错误,除数不能为0,,因为%是取余数,例如,5%2,相当于,5除以2,取余数1
兖州市13465748827: [c语言]有1到100个数,现在从中提取7、和个位或十位上有7的数、以及7的倍数,然后输出. - ?
霜程八味: for(i=1;i<=100;i++) { if ((i%7==0) or ((i-i%10)/10==7) or (i%10==7)) {printf("%d",i);} } 这是我写的程序 i%7==0 是表示被7整除((i-i%10)/10==7)是指十位为7,i%7后是个位数,i-个位是十的倍数,也再除10就可以得出十位上的数字是多少...