1 //函数调用
2
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <math.h>
6 //根据传入的半径,返回圆的面积
7 double calcCircle(double);
8
9 //要对用户输入进行非负的判断
10 int validate(double); //验证输入double 的数值 是否为正数
11
12 //double input(); //输入正确的值,如果不符合,重新输入
13 //矩形
14 double calcRectangle(double,double);
15 //三角形
16 double calcTriangle(double,double);
17
18 int main()
19 {
20
21 double radius;
22 double width,height;
23 double base,heigh;
24 double s;
25 int choice;
26
27 printf("1.圆\n");
28 printf("2.矩形\n");
29 printf("3.三角形\n");
30 printf("本系统只支持计算三种图形的面积,请选择:\n");
31 scanf("%d",&choice);
32
33
34 switch(choice)
35 {
36 case 1:
37
38 printf("请输入圆的半径,我来计算面积:");
39
40 //要对用户输入进行非负的判断
41 do
42 {
43 scanf("%lf",&radius); //录入
44 if(!validate(radius)) // 取反 不是正确的整数,就会有提示!!!
45 {
46 printf("您录入的是负数,请录入整数");
47 }
48
49 }
50 while(!validate(radius)); //当验证不通过的时候,从新录入
51
52 s=calcCircle( radius);//调用
53 break;
54 case 2:
55
56 printf("请输入矩形的长和宽,我来计算面积:");
57 do
58 {
59 scanf("%lf%lf",&width,&height);
60 if(!validate(width) || !validate(height))
61 {
62 printf("您录入的是负数,请录入整数");
63
64 }
65 }
66 while(!validate(width) || !validate(height));
67 //验证通过 ,在调用,计算
68 s = calcRectangle(width, height);
69 break;
70
71 case 3:
72 printf("请输入三角形的底和高,我来计算面积:");
73 do
74 {
75 scanf("%lf%lf",&base,&heigh);
76 if(!validate(base) || !validate(heigh))
77 {
78 printf("您录入的是负数,请录入整数");
79 }
80 }
81
82 while(!validate(base) || !validate(heigh));
83 s = calcTriangle(base,heigh);
84
85
86 break;
87
88 default:
89 printf("本系统只支持3种图形,请在1-3之间选择!!!");
90 }
91
92
93 printf("图形的面积为:%.2lf\n",s);
94 // printf("矩形的面积为:%.2lf\n",s);
95 // printf("三角形的面积为:%.2lf\n",s);
96
97 return 0;
98 }
99
100
101 double calcCircle(double radius)
102 {
103
104 double s = 3.14 *pow(radius,2);
105
106 //返回计算好的面积
107 return s;
108 }
109
110
111
112
113 //矩形
114 double calcRectangle(double width,double height)
115 {
116 return width * height;
117
118 }
119
120
121
122 //三角形
123 double calcTriangle(double base,double heigh)
124 {
125 return base * heigh /2;
126
127 }
128
129
130
131 //验证输入double 的数值 是否为正数
132 int validate(double num)
133 {
134 return num > 0 ; //如果num>0,会返回一个非0值,表示真
135
136 }

C函数调用(2)的更多相关文章

  1. idapython实现动态函数调用批量注释

    部门小伙伴遇到一个样本需要对动态函数调用就行批量注释还原的问题,通过idapython可以大大的减少工作量,其实这一问题也是很多样本分析中最耗时间的一块,下面来看看如何解决这个问题(好吧这才是今年最后 ...

  2. [汇编与C语言关系]1.函数调用

    对于以下程序: int bar(int c, int d) { int e = c + d; return e; } int foo(int a, int b) { return bar(a, b); ...

  3. javascript函数调用的各种方法!!

    在JavaScript中一共有下面4种调用方式: (1) 基本函数调用 (2)方法调用 (3)构造器调用 (4)通过call()和apply()进行调用 1. 基本函数调用 普通函数调用模式,如: J ...

  4. jsContext全局函数调用与对象函数调用、evaluateScript

    evaluateScript:兼具js加载(生成具体的上下文)(函数与通用变量的加载),与函数执行的功能: 函数调用的方式有两种: 1)获取函数(对象),然后执行调用: [context[@" ...

  5. 用 Graphviz+pvtrace 可视化函数调用

    最近在想怎么把一个程序的函数调用关系快速的用流程图的方式画出来,之后看到了这个一篇文章“用 Graphviz 可视化函数调用”(http://www.ibm.com/developerworks/cn ...

  6. 行内js函数调用

    <ul> <li onclick=abc(this);><a href="javascript:void(0);">12234588</a ...

  7. ObReferenceObjectByName函数调用WIN7下的解决

    <寒江独钓 Windows内核安全编程>第4章键盘的过滤ctrl2cap代码中,ObReferenceObjectByName函数调用: [1]extern POBJECT_TYPE Io ...

  8. c语言函数, 函数调用及函数递归

    1. 函数的定义: 返回值类型 函数名(形参列表) {函数体(函数的实现内容)}, 注意: 如果没有参数, 小括号也是必不可少的.  函数与函数之间可以嵌套调用(也就是在一个函数内部可以调用另外一个函 ...

  9. C/C++函数调用的几种方式及函数名修饰规则以及c++为什么不允许重载仅返回类型不同的函数

    我们知道,调用函数时,计算机常用栈来存放函数执行需要的参数,由于栈的空间大小是有限的,在windows下栈是向低地址扩展的数据结构,是一块连续的内存区域.这句话的意思是栈顶的地址和栈的最大容量是系统预 ...

  10. 深入理解 C 语言的函数调用过程

    来源: wjlkoorey 链接:http://blog.chinaunix.net/uid-23069658-id-3981406.html 本文主要从进程栈空间的层面复习一下C语言中函数调用的具体 ...

随机推荐

  1. python之list列表(基础篇)

    特点:1.有序的 2.可以存放多个元素 3.每个元素可以是任何数据类型,4,通过下标值访问1,定义一个空列表  2,定义一个非空列表 3.访问列表中的元素(同str类型) 4,切片与步长(同str类型 ...

  2. 29、windows下通过zip包方式安装mysql

    29.1.下载mysql: 1. www.mysql.com 2. 3. https://dev.mysql.com/downloads/mysql/ 4. 29.2.安装mysql数据库: 1.把下 ...

  3. 在FLEX中真正的隐藏一个组件,隐藏后不占据自身的位置. (转)

    一直被这个问题困扰,就是在设置UI的Visible的时候,改组件的位置一直被占着,比较恶心,今天在这里发现了一个方法, 操作方法如下设置: includeInLayout为false即可 来自:htt ...

  4. nginx日志分析及其统计PV、UV、IP

    一.nginx日志结构 nginx中access.log 的日志结构: $remote_addr 客户端地址 211.28.65.253 $remote_user 客户端用户名称 -- $time_l ...

  5. centos搭建dns服务器

    前言:搭建dns服务器,dns服务器我就不多说什么了,大家都懂,就是域名解析,就将ip装换为域名,域名就可以理解为类似这样的www.baidu.com网址,接下来我就直接上图了.这里面最重要的是修改u ...

  6. python操作elasticsearch增、删、改、查

    最近接触了个新东西--es数据库 这东西虽然被用的很多,但我是前些天刚刚接触的,发现其资料不多,学起来极其痛苦,写个文章记录下 导入库from elasticsearch import Elastic ...

  7. Django基础-003 配置Django自带的后台管理,操作数据库

    插入测试数据,可以自己写页面来插入数据 也可以使用Django自带的后台管理,来操作数据表 1.创建用户 python manage.py createsuperuser 2.在浏览器输入地址,进入D ...

  8. MyBatis学习笔记(一):MAVEN的下载,安装与环境配置和在IDEA中配置maven

    一.下载 官网下载 :http://maven.apache.org/download.cgi 网速慢的也可以下载我配置好的国内阿里云仓库的.以下以我配置好的为例: 下载链接:https://pan. ...

  9. 5分钟搞定一个网页特效----v客学院技术分享

    这是我们v客学院基础班的童鞋都做完的一个超简单炫酷的特效demo,今天我来带大家用最快的速度和最简单的方法制作一个音乐抖动条,大家有兴趣不妨一起来试试~~~~~~~ 做这个demo之前我们得有一些ht ...

  10. MySQL -- 表联结

    创建联结:(使用WHERE联结)SELECTvend_name,prod_name,prod_priceFROMvendors,productsWHEREvendors.vend_id=product ...