c语言-为什么为什么为什么在C语言中....

问题描述

为什么为什么为什么在C语言中....

为什么在C语言中 当除号的左右两边都是整数时候,商也只有整数部分呢?
5/3 = 1 2/3 =0

解决方案

应为C语言就是这样规定的,int类型的数相除只能得到int类型的数,只要其中一个是double的话那结果就是double。不过在js中因为默认都是double,所以2/3的话结果是小数。

解决方案二:

C语言中,整数相除是整除。
你要这么写
double r = 2/(double)3;
或者
double r = 2/3.0;

解决方案三:

/ 是除运算,你是知道的。但C语言中根据运行的变量或常量确认运行结果的类型。两个 int 计算的结果还是 int,所以将计算后的小数位舍去了,就得到你提供的结果。

解决方案四:

因为这是C的语法啊,int型和int型相除,还是得到int型,如果是与double型相除的话,就是得到double型,建议多看看C的基础哈

解决方案五:

double d=2.0/3就行了

解决方案六:

补充一点,C++11 规定,取整运算向0方向舍入,即正结果往小了取,负数结果往大了取。

解决方案七:

我觉的可以强制转换成double来算比较好,int除法除完了就还是int 啊

解决方案八:

因为在C语言中两个int型的运算,只能得到int型,除非你进行格式转化

解决方案九:

C语言中文件操作
C语言写的文本编辑器
C++/C语言中链表队列与栈

时间: 2024-08-30 04:58:16

c语言-为什么为什么为什么在C语言中....的相关文章

语言 指针类型-C语言中, 指针类型char*有什么意义。

问题描述 C语言中, 指针类型char*有什么意义. C语言中,void*与char*之类的指针类型相比,有什么特殊的用途? 解决方案 如果定义成 void * 时,就无法取指针中的数据,因为数据类型不明确. 想要取 void * 中的数据,需要转换成想要的类型指针,如 char * 或 int * . 一般 void * 做参数参数时使用,可以接受 char * 或 int * 等其它类型指针的传入.如果定义成 char * 等固定类型,则无法接收除 char * 外的其它类型指针. 解决方案

详解C语言中scanf函数使用的一些注意点_C 语言

 (一)基本介绍 Scanf是系统自带的函数,声明包含在stdio.h文件中,因此要是有该函数,必须加载#include<stdio.h>头文件.当执行到scanf函数时,程序就暂停等待用户输入,该函数只接受变量的地址,格式为&变量名.是一个阻塞式的函数,2用户输入完毕后,则将值赋值给变量,至此函数调用完毕.敲回车键告知计算机键入完毕. (二)使用注意 ①. 使用scanf函数输入一个字符变量.Char a; scanf("%c",&a); ②. 同时输入多

C语言中的strdup()函数和其与strcpy()函数的区别_C 语言

头文件: #include <string.h> 定义函数: char * strdup(const char *s); 函数说明:strdup()会先用maolloc()配置与参数s 字符串相同的空间大小,然后将参数s 字符串的内容复制到该内存地址,然后把该地址返回.该地址最后可以利用free()来释放. 返回值:返回一字符串指针,该指针指向复制后的新字符串地址.若返回NULL 表示内存不足. 范例 #include <string.h> main(){ char a[] = &

C语言中的fscanf()函数与vfscanf()函数使用_C 语言

C语言fscanf()函数:输入函数(比较常用)头文件: #include <stdio.h> 定义函数: int fscanf(FILE * stream, const char *format, ...); 函数说明:fscanf()会自参数stream 的文件流中读取字符串, 再根据参数format 字符串来转换并格式化数据.格式转换形式请参考scanf(). 转换后的结构存于对应的参数内. 返回值:成功则返回参数数目, 失败则返回-1, 错误原因存于errno 中. 范例 #inclu

c语言课程设计-c语言中a=b--&amp;amp;lt;=a||a b!=c怎么算

问题描述 c语言中a=b--<=a||a b!=c怎么算 c语言中a=b--<=a||a b!=c怎么算a=1,b=2,c=3,求计算过程以及计算后ab的值 解决方案 先找逻辑运算符"||" 左边:(a=b--) <= a 计算b--的值,b--的值为2(得到这个值也就让b的值变成了1),赋值给a后a的值为2,(a=b--)的值也就是a的值为2,2<=2成立,所以左边为真 右边:(a+b)!=c,a+b的值为3,c的值为3,所以右边为假 真||假的结果为真 b-

c语言-关于C语言中的static变量的问题

问题描述 关于C语言中的static变量的问题 下面的代码最终结果为什么是-10?去掉这个函数中的static则结果是-2可以理解,请教一下加了static后这个变量在函数的多次调用中是如何变化的 int fun() { static int a = 1; return ++a; } int main() { int b; b = fun()-fun()*fun(); printf("%d ",b); return 0; } 解决方案 这属于编译器未定义行为.也就是说,fun()-fu

c语言-请问C语言中a和225有什么关系

问题描述 请问C语言中a和225有什么关系 gocr软件中的一部分代码 switch (main) {... case 'a': return LATIN_SMALL_LETTER_A_WITH_ACUTE;... } 已知 LATIN_SMALL_LETTER_A_WITH_ACUTE 被define为0x00E1即十进制225 那么a和225在C语言中有什么约定俗成的关联吗 解决方案 一个是字符型,一个是整型,应该可以互相转化的. 解决方案二: DEC OCT HEX BIN Symbol

c语言-在C语言中,一个n*n的数组给特定的位置赋值为1,值为1的位置的下标可以组成一些路径,求这些路径

问题描述 在C语言中,一个n*n的数组给特定的位置赋值为1,值为1的位置的下标可以组成一些路径,求这些路径 比如有一个数组arc[6][6],初始化为0,然后arc[0][1]=1;arc[0][2]=1; arc[1][3]=1;arc[1][4]=1;arc[2][4]=1;arc[2][5]=1; arc[3][6]=1;arc[4][6]=1;arc[5][6]=1; 比如可以找出一些路径如:0-1-3-6:0-2-4-6:怎么用C语言写代码把所有的路径找出来,谢谢 解决方案 无非就是广

c语言-C语言中Free函数释放内存为何释放不了!!!!!!!

问题描述 C语言中Free函数释放内存为何释放不了!!!!!!! #include #include void testFree(char *par) { void*free(par); par = NULL; } int _tmain(int argc, _TCHAR* argv[]) { char path[10] = {"abc"}; char *str = (char *) malloc(100 *sizeof(char)); memset(str,0x00,100 *size