关于实参与形参类型不一致问题求解

问题描述

关于实参与形参类型不一致问题求解
#include<stdio.h>
#include<math.h>
double e(double *u,double *v)
{
    *u=exp(*u)*cos(*v);
    *v=exp(*u)*sin(*v);
    return ;
}

double ln(double *u,double *v)
{
    *u=ln(sqrt((*u)*(*u)+(*v)*(*v)));
    *v=atan((*v)/(*u));
    return;
}

double sin(double *u,double *v)
{
    *u=sin(*u)*(exp(*v)+exp(-(*v)))/2;
    *v=cos(*u)*(exp(*v)-exp(-(*v)))/2;
    return;
}

double cos(double *u,double *v)
{
    *u=cos(*u)*(exp(*v)+exp(-(*v)))/2;
    *v=-sin(*u)*(exp(*v)-exp(-(*v)))/2;
    return;
}

main()
{
    double x,y,a,b;
    double e(double *,double *);
    double ln(double *,double *);
    double sin(double *,double *);
    double cos(double *,double *);
    printf("请输入复数的实部和虚部x,y:");
    scanf("%lf%lf",&x,&y);
    a=x;b=y;
    e(&x,&y);
    printf("exp(%f+%fi)=%f+%fin",a,b,x,y);
    x=a;y=b;
    ln(&x,&y);
    printf("ln(%f+%fi)=%f+%fin",a,b,x,y);
    x=a;y=b;
    sin(&x,&y);
    printf("sin(%f+%fi)=%f+%fin",a,b,x,y);
    x=a;y=b;
    cos(&x,&y);
    printf("cos(%f+%fi)=%f+%fin",a,b,x,y);
}

问题如下:
1,错误 16 error C2198: “cos”: 用于调用的参数太少
2,错误 2 error C2440: “函数”: 无法从“double”转换为“double *”
( 21 IntelliSense: "double" 类型的实参与 "double *" 类型的形参不兼容 )
3, 警告 13 warning C4029: 声明的形参表不同于定义

4,警告 1 warning C4033: “e”必须返回值

不明白这是为什么,希望高手指点。

解决方案

 #include<stdio.h>
#include<math.h>
void e(double *u,double *v)//修改
{
    *u=exp(*u)*cos(*v);
    *v=exp(*u)*sin(*v);
}

void ln(double *u,double *v)//修改
{
    *u=log(sqrt((*u)*(*u)+(*v)*(*v)));//修改
    *v=atan((*v)/(*u));
}

void sin(double *u,double *v)//修改
{
    *u=sin(*u)*(exp(*v)+exp(-(*v)))/2;
    *v=cos(*u)*(exp(*v)-exp(-(*v)))/2;
}

void cos(double *u,double *v)//修改
{
    *u=cos(*u)*(exp(*v)+exp(-(*v)))/2;
    *v=-sin(*u)*(exp(*v)-exp(-(*v)))/2;
}

void main()
{
    double x,y,a,b;

    printf("请输入复数的实部和虚部x,y:");
    scanf("%lf%lf",&x,&y);
    a=x;b=y;
    e(&x,&y);
    printf("exp(%lf+%lfi)=%lf+%ln",a,b,x,y);//修改
    x=a;y=b;
    ln(&x,&y);
    printf("ln(%lf+%lfi)=%l+%lfin",a,b,x,y);//修改
    x=a;y=b;
    sin(&x,&y);
    printf("sin(%lf+%lfi)=%lf+%lfin",a,b,x,y);//修改
    x=a;y=b;
    cos(&x,&y);
    printf("cos(%lf+%lfi)=%lf+%lfin",a,b,x,y);//修改
}
时间: 2024-10-02 22:46:01

关于实参与形参类型不一致问题求解的相关文章

mpp-sql两表关联,两边字段类型不一致的问题。

问题描述 sql两表关联,两边字段类型不一致的问题. 两个表用id字段关联,主表大概4000w条数据,副表大概1.6亿条,id字段在主表为bigint类型,在副表为varchar类型,环境为db2的mpp,之前不知道存在类型不一致的情况,关联了不止十小时无果,改正类型不一致问题后,十多分钟出结果.两边的id也都是数字类型,我想知道为什么性能前后差别这么大,而且sql作为面向查询的语言,为什么需要我显式的转换数据类型? 解决方案 类型不一致怎么去关联 解决方案二: int和varchar的存储方式

6 0函数参数-函数实参和形参个数不同,为什么能通过VC++6.0编译

问题描述 函数实参和形参个数不同,为什么能通过VC++6.0编译 函数定义如下: void fun(char s[]){ .... } int main(){ char s[]=...,t[]=...; fun(s,t); ... } 为何能通过VC++6.0的编译,实际传递给fun的参数是s 解决方案 VC6 没有安装,但 VS2015 下肯定是编译无法通过的. 因为从语法上来讲,也肯定是编译不能通过的. void fun(char s[]){ return ; } int _tmain(in

java 实参和形参的区别

打个比方:方法就像城门,而形参则规定了什么人可以通过(对方法来说就是调用).城门张贴了通行规定:1.男性能通过,女性不可以(类似于条件1)2.必须是活人(死人类似于方法中传入null).根据此规定,如果是活的男人的话,无论是大人小孩青年老人病人.爷爷儿子孙子兄弟都可以进入此门(甚至公狗也可以),任何非男性生物均不能通过.反应到方法上来,比如有这样一个方法:public void doSometing(Object obj),Object相当于所有物体,在方法中进行判断此物体是否为雄性类似于张贴通

C++编程常见错误整理

       最近,我在阅读<C++ Primer>,经常看到里面提到一些错误类型,像"编译错误"."运行错误"等.于是,我对C++中的错误类型产生了兴趣,查阅了一些资料,特整理如下.        (一) 程序错误分类         在C++中,程序错误分为三类:语法错误(syntax error).逻辑错误和运行错误.         语法错误指违背了C++语言的规定,主要是语句的结构或拼写中存在的错误.         逻辑错误是由于程序设计人员

C++常见错误中英文对照表_C 语言

fatal error C1003: error count exceeds number; stopping compilation 中文对照:(编译错误)错误太多,停止编译 分析:修改之前的错误,再次编译 fatal error C1004: unexpected end of file found 中文对照:(编译错误)文件未结束 分析:一个函数或者一个结构定义缺少"}".或者在一个函数调用或表达式中括号没有配对出现.或者注释符"/*-*/"不完整等 fata

让你提前认识软件开发(13):指针及结构体的使用

第1部分 重新认识C语言 指针及结构体的使用   [文章摘要]         指针在C语言中占有很重要的地位,同时也是学习C语言的难点所在.结构体属于用户自己建立的数据类型,在实际的软件开发项目中应用很广泛.         本文以实际的例子介绍了C语言中指针和结构体的使用方法,为进一步的学习和应用提供了有益的参考. [关键词]         C语言 指针  结构体 文件   1.指针和结构体简介         在C语言中,将地址形象化地称为指针,意即通过它能够找到以它为地址的内存单元.实

C语言面试

最全的C语言试题总结 第一部分:基本概念及其它问答题 1.关键字static的作用是什么? 这个简单的问题很少有人能回答完全.在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变. 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问.它是一个本地的全局变量. 3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用.那就是,这个函数被限制在声明它的模块的

javascript作用域链(Scope Chain)用法实例解析_javascript技巧

本文实例分析了javascript作用域链(Scope Chain)用法.分享给大家供大家参考,具体如下: 关于js的作用域链,早有耳闻,也曾看过几篇介绍性的博文,但一直都理解的模棱两可.近日又精心翻看了一下<悟透Javascript>这本书,觉得写得太深刻,在"代码的时空"一节里有一段介绍作用域链的地方寥寥数语,回味无穷(其实还是理解的模棱两可^_^).现在整理下自己的读书笔记,顺便借鉴网上资源,写下来. 一.从一个简单的问题说起 下面的js代码在页面中运行显示什么结果:

解析C++编程中的继承方面的运用_C 语言

C++继承与组合详解 我们知道,在一个类中可以用类对象作为数据成员,即子对象(详情请查看:C++有子对象的派生类的构造函数).实际上,对象成员的类型可以是本派生类的基类,也可以是另外一个已定义的类.在一个类中以另一个类的对象作为数据成员的,称为类的组合(composition). 例如,声明Professor(教授)类是Teacher(教师)类的派生类,另有一个类BirthDate(生日),包含year,month,day等数据成员.可以将教授生日的信息加入到Professor类的声明中.如: