【函数传值】
向函数传值是函数间传递数据的基本方式,简称传值方式。实质是调用函数把实参的值复制了一份传给了被调用函数的形参,使形参获得了初始值,无副作用。
【函数传址】
函数传址是函数间传递数据的又一种方式,简称传址方式。实质是调用函数把一个或多个内存地址传递给被调函数的形参,使形参指向了内存中的指定位置,有副作用。
以下例子运用了函数传值和传址的方式进行函数调用解出了一元二次方程:

//解一元二次方程ax^2+bx+c=0,练习函数调用,传值和传址的理解
#include<stdio.h>
#include<math.h>
//函数声明
void getdata (int *a,int*b, int *c);int quadratic(int a,int b,int c, double *proot1, double*proot2);void printresults(int numberroots, int a,int b,int c,double root1, double root2);//主程序int main(){int a,b,c,numberroots;double root1,root2;char again='Y';printf("solve quadratic equations \n\n");while(again=='Y'||again=='y')    /*可保证继续输入然后继续计算*/{getdata(&a,&b,&c);/*作用是输入三个变量的值,用函数传址的办法*/numberroots=quadratic(a,b,c,&root1,&root2);/*计算函数*/printresults(numberroots,a,b,c,root1,root2);/*输出函数*/getchar ();printf("\n do you have another equation (Y/N):");scanf("%c",&again);}printf("\n thank you.\n");return 0;}//getdata函数定义void getdata(int *pa,int *pb,int *pc){printf("piease enter coefficiences a,b and c;");scanf("%d %d %d",pa,pb,pc);return;}//quadratic函数定义,主要求解过程int quadratic(int a, int b, int c, double *proot1, double *proot2){int result;double discriminant;double root;if(a==0&&b==0){result=-1;}else if(a==0){*proot1=-c/(double)b;result=1;}else{discriminant=b*b-(4*a*c);if(discriminant>=0){root=sqrt(discriminant);*proot1=(-b+root)/(2*a);*proot2=(-b-root)/(2*a);result=2;}else result=0;}return result;/*返回解的个数*/}//printresult函数定义void printresults(int numberroots,int a,int b,int c, double root1, double root2){printf ("your equation : %dx^2+%dx+%d\n",a,b,c);switch(numberroots){case 2:printf("roots are :%6.3f %6.3f\n",root1,root2);break;case 1:printf("only one root :%6.3f\n",root1);break;case 0:printf("roots are imaginary.\n");break;default :printf("invalid cofficients\n");break;}return;}

C语言编程入门——函数调用解一元二次方程相关推荐

  1. php编写解一元一次方程,解释C语言(逐句) 解一元一次方程的 怎样用C语言编一个解一元二次方程的程序?...

    导航:网站首页 > 解释C语言(逐句) 解一元一次方程的 怎样用C语言编一个解一元二次方程的程序? 解释C语言(逐句) 解一元一次方程的 怎样用C语言编一个解一元二次方程的程序? 相关问题: 匿 ...

  2. 解一元二次方程-Java语言实现

    前言 高考完的那个暑假我就开始自学C语言.那时候通过看视频和<C primer plus>写了一个解一元二次方程的程序,从此走上了吊打大学同班同学的路-- 但是那次是用C语言写的,如今白云 ...

  3. C语言:解一元二次方程

    C语言实验题――一元二次方程 描述 解一元二次方程ax2+bx+c=0的解. 输入 输入三个实数a,b,c的值,且a不等于0. 输出 输出两个根X1和X2,用空格隔开,具体格式为: X1 X2 其中大 ...

  4. 解一元二次方程lisp_lisp语言编写lisp程序解二元一次方程组和一元二次方程组应该怎么做​...

    附上相关程序,请审核. ;-------------------------解二元一次方程组------------------------ (defun 1y1c (a c) (if (/= a 0 ...

  5. 编写lisp程序解一元二次方程_怎样用C语言编一个解一元二次方程的程序?

    展开全部 用三个变量,来接一元二次方程的三个参数, 然后62616964757a686964616fe78988e69d8331333365633839根据这三个参数计算△=b*b-4ac,再根据△判 ...

  6. C语言 java 解一元二次方程

    什么是一元二次方程 :(来自百度百科) 只含有一个未知数(一元),并且未知数项的最高次数是2(二次)的整式方程叫做一元二次方程.标准形式为:ax²+bx+c=0(a≠0). 用求根公式法解一元二次方程 ...

  7. c语言韦达定理求方程解,解一元二次方程练习题(韦达定理)

    <解一元二次方程练习题(韦达定理)>由会员分享,可在线阅读,更多相关<解一元二次方程练习题(韦达定理)(13页珍藏版)>请在人人文库网上搜索. 1.解一元二次方程练习题(配方法 ...

  8. linux操作系统下 c语言编程入门

    linux操作系统下 c语言编程入门 (一)目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门 ...

  9. linux操作系统下c语言编程入门

    linux操作系统下c语言编程入门  整理编写:007xiong  原文:Hoyt等 (一)目录介绍 1)Linux程序设计入门--基础知识  2)Linux程序设计入门--进程介绍  3)Linux ...

最新文章

  1. 【基本数据结构之'图'】
  2. 在Java中有类似.NET的NotImplementedException吗?
  3. java英文版怎么汉化_请问,java中,将下面的英文名字变为中文 该怎样输出?
  4. NAR | ZKSCAN3延缓人干细胞衰老的表观遗传机制
  5. 自适应图片大小的弹出窗口(3 中方法)
  6. 学数答题160908-数论不等式
  7. 如何从菜鸟成长为高手!
  8. 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。...
  9. 【工具使用系列】一小时学会使用MATLAB OPC 工具箱(OPC Toolbox)
  10. public protected private
  11. linux切分文件指定行_vim技巧:在不同文件buffer间切换,在多窗口跳转和改变窗口大小...
  12. web前端性能优化的方法
  13. Java学生管理系统-增删改查
  14. mac视频播放器哪个最好用?不妨试试OmniPlayer Pro mac中文版吧
  15. STC8H8K64U单片机学习-1-芯片功能介绍
  16. 怎么设置腾讯云CDN缓存规则
  17. 量化交易策略五_PEG策略
  18. [PAL规范]SAP HANA PAL 数据处理四分位间距检测Inter-quartile Range Test编程规范IQRTEST...
  19. 使用python将ppt文件批量转为pptx、批量提取ppt中的文字保存
  20. ai的智能发展不会超越人类_人工智能:超越炒作

热门文章

  1. 万能的林萧说:一篇文章教会你,如何做到招聘要求中的“要有扎实的Java基础”。
  2. 舵机使用基础(SG90模拟舵机和MG90S数字舵机为例)(附驱动程序)
  3. unity2D小游戏---飞翔的小鸟
  4. 对win10突然卡顿的一种情况的记录
  5. 正则的应用--读取本地文件1--例如豆瓣-codecs
  6. 训练集、测试集的划分——K折交叉验证
  7. springcloud alibaba - (第六章~第十章)
  8. 重生玄幻练制超级计算机小说,四本好看过瘾的转世重生类玄幻小说,熬夜也要看,根本停不下来...
  9. 你知道互联网行业哪些岗位需求量最大?什么职位最赚钱?
  10. 微信小程序 实现阿里云上传