c语言-C语言在#define中带参数出错,为什么

问题描述

C语言在#define中带参数出错,为什么

#include
#define FUNC(X,Y) (1/(X)+1/(Y))
int main(void)
{
double x=FUNC(2,2);
printf("%lfn",x);
return 0;
}
在VS2013中编译没有错误,但是输出结果是0.000000,为什么?是#define用错了吗?

解决方案

In C the divide between int also return int

so 1/2=0
so 1/2 + 1/2 = 0

solution
#define func(x,y) (1.0/(x)+1.0/(y))

解决方案二:

多项式是整数类型的,两个结果都是0.可以写成#define FUN(X,Y) (1.0/x+1.0/y)

解决方案三:

数据转换问题,多理解下吧

解决方案四:

1,2都是整型的数据,整型数据之间进行运算之后还是整型,所以1/2=0,所以你的答案会输出0.000000

时间: 2025-01-21 12:40:35

c语言-C语言在#define中带参数出错,为什么的相关文章

关于VB中带参数运行EXE文件的问题

问题描述 我想点击一个按钮的时候执行一个EXE文件.Shell("rundll32.exeurl.dll,FileProtocolHandler"&Application.StartupPath&"lin.exe",vbMaximizedFocus)我用这种方法现在已经可以成功运行EXE文件了现在我想带参数运行这个EXE文件,应该真么写譬如我想运行的是lin.exe/s127.0.0.1应该怎么写我已经试过把lin.exe直接换成lin.exe/s1

sql server数据库中带参数的函数调用

问题描述 GetChild()是我自定义的函数,有一个输入参数下列语句 select No_Hospital from GetChild('10001') 就是正确的,但是如果我写成这样子就提示有错误:select No_Hospital from GetChild(select choscode from SysDictHospital where No_Hospital= 10005)请各位帮忙看一下,O(∩_∩)O~ 问题补充:这就是我存储过程中的一小部分bluesky4485 写道 解决

SQL SERVER中带参数的返回

server CREATE PROCEDURE LoginUser @loginUN char(50) OUTPUT, @loginPW char(40)ASif @loginPW = (select [password] from users where username=@loginUN) return 0;else return -1; GO 要loginUN返回值,把它定义成OUTPUT的,相应的SqlCommand的参数定义里也定义也ParameterDirect.InputOutpu

c程序设计-C语言截结构体指针中的变量又是另一个结构体指针,怎么用,代码运行不了

问题描述 C语言截结构体指针中的变量又是另一个结构体指针,怎么用,代码运行不了 #include #include #include #include #define LIST_INIT_SIZE 100//线性表存储空间的初始分配量 #define LISTINCREMENT 10//线性表存储空间的分配增量 typedef struct { int No; char name[10]; }Student; typedef struct { Student *elem;//存储空间基址 int

完成asp语言对XML文档中指定节点文本的增加、删除、修改、查看

<% '---------------------------------------------------------------- '程序简介: 完成asp教程语言对xml文档中指定节点文本的增加.删除.修改.查看 '入口参数: 无 '出口参数: 无 '------------------------------------------------ '函数名字:connectxml() '入口参数: filename 需要连接或打开的xml文件名 '出口参数: 无 '返回值 :connec

c语言程序设计-C语言求从n个数中选出k个的最优算法

问题描述 C语言求从n个数中选出k个的最优算法 在计算组合问题时一般算法总会溢出,有没有啥极快又可以避免溢出的算法? 解决方案 外部排序,你可是试试看

visual stu...-使用c++语言如何在visual studio 中编写可视化窗口程序

问题描述 使用c++语言如何在visual studio 中编写可视化窗口程序 使用c++语言如何在visual studio 中编写可视化窗口程序? 解决方案 就可以创建MFC 程序 剩下的就是代码实现功能的问题了 解决方案二: 最简单的已经使用MFC工程向导,你也可以手动写代码做Win32的基本程序结构. 解决方案三: 最简单的方法是用对话框当窗口用,在资源视图里可以创建对话框,代码里直接一句DialogBox()就行,对话框上可以直接托控件上去,非常方便.而且不用一些专门的软件,比如spy

c语言-【C语言】用scanf赋值给带指针的字符串

问题描述 [C语言]用scanf赋值给带指针的字符串 我希望是输入几个单词之后,这几个单词成为一个字符串,但是变异之后仍然有问题. #include<stdio.h> #include<stdlib.h> #include<string.h> int main(int argc, char *argv[]) { int n; printf("Number of words: "); scanf("%d", &n); con

qt labtool-QT语言开发的LabTool项目中的setReference相关问题

问题描述 QT语言开发的LabTool项目中的setReference相关问题 QT语言开发的LabTool项目中,每次校准波形,让波形显示在屏幕中间的时候,触发点的红线都会在不同的地方跳动,这和setReference方法中的mRefTime值有怎样的关系? 解决方案 QT的中文化相关问题qt 数据库连接相关问题QT项目中的相关知识