c 语言运算符之除法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c 语言运算符之除法
2008-08-22 10:35:43| 分类:C语言学习| 标签:|字号大中小订阅
下面的小程序有除法运算。
#include
float even_sum(int *p);
void main()
{
int x;
float sum=0;
printf("please input a number \n");
scanf("%d",&x);
if (x%2==0)
{
sum= even_sum(&x);
}
else
{
sum=even_sum(&x);
}
printf("the sum is %f\n",sum);
}
float even_sum(int *x)
{
float sum=0;
while (*x>0)
{
sum+=1/(float)*x;
printf("the sum is %f\n",sum);
*x=*x-2;
}
return sum;
}
1. 乘法运算符(Multiplication Operator):*
* 是乘法运算符。以下语句:
meter = 100 * cm;
常量100 和变量cm 相乘,乘积被赋值给变量meter。
2. 除法运算符(Division Operator):/
C 使用/ 作为除法运算符。/ 左边的操作数除以右边的操作数。也就是说,/ 左边是被除数,右边是除数。例如:
var = 6/2;
6 除以2 得3,然后3 被赋值给变量var。
整数相除和浮点数相除有所不同。浮点数相除得到浮点数,整数相除得到整数。C 语言规定,整数相除产生的小数部分一律被抛弃,这就是所谓的截断(truncation)。例如:7/4 的结果是1,而
不是 1.75,也不是2。
下面我们来看一个小程序。
/* divide.c */
#include
int main(void)
{
printf("integer division: 7/4 is %d \n", 7/4);
printf("floating division: 7./4. is %f \n", 7./4.);
printf("mixed division: 7./4 is %f \n", 7./4);
return 0;
}
输出为:
integer division: 7/4 is 1
floating division: 7./4. is 1.750000
mixed division: 7./4 is 1.750000
最后一个printf 中,我们用浮点数除以整数,得到的结果和第二个printf 一样。这是因为 C 自动把这两个操作数的类型转换成了同一种类型。本例中,整数4 被转换成了浮点类型,然后再和浮点
数7. 相除。
C99 之前,正整数和负整数相除,如果产生小数部分,则相除的结果是不确定的。例如:7/-4 的结果可能是-2,也可能是-1。C99 规定,正整数和负整数相除,产生的小数部分一律被抛弃。也
就是说,C99 中,7/-4 的结果是确定的,一定是-1。