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. js(if else)分数等级查询

    <!DOCTYPE html><html><head><meta charset="utf-8"><title>文档标题 ...

  2. Kubernetes通过downwardAPI传递元数据

    应用往往需要获取所运行环境的一些信息,包括应用自身以及集群中其他组件的信息.Kubernetes可以通过环境变量以及DNS进行服务发现,但其他信息如何处理呢?下面将介绍特定pod和容器元数据如何被传递 ...

  3. 第3章:快速部署一个Kubernetes集群

    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Master 节点$ kubeadm in ...

  4. 6、负载均衡HAproxy介绍

    6.1.常用负载均衡器软件说明: 现在常用的三大开源软件负载均衡器分别是Nginx.HAProxy.LVS. 1.nginx负载均衡的特点: (1)工作在网络的七层之上,可以针对http应用做一些分流 ...

  5. Spring到底应该学哪些内容?

    大家好,我是冰河~~ 说实话,「Spring注解系列」这个专题的内容是去年开始更新的,期间,基本上已经更新完IOC容器相关的内容了.在即将更新AOP相关的内容时,由于种种原因吧,也有很多小伙伴在微信上 ...

  6. POJ 2947 2947 Widget Factory 高斯消元

    给出组件的数量n,给出记录的数量m(n就是变元数量,m是方程数量).每一个记录代表一个方程,求每个组件的生产天数. 高斯消元即可 #include <cstdio> #include &l ...

  7. My Idol:Beihai Zhang --<<The Three-body Problem>>

    First 父:"要多想." 子:"想了之后呢?" 父:"北海,我只能告诉你在那以前要多想." 要多想--这场战争敌我力量对比过于悬殊,硬碰 ...

  8. AcWing 90. 64位整数乘法

    求a*b%p的值. 0<a,b,p<1e18; 原题链接 #include<bits/stdc++.h> #define ull unsigned long long usin ...

  9. 其他:Windows10安装自带的Linux

    1.首先我们要打开Windows功能 2.在这里把勾打上 3.然后打开 设置 --- 更新和安全 --- 针对开发人员 --- (选择)开发人员模式 --- 确定启动 就行了 4.打开PowerShe ...

  10. Ha1cyon-CTF 芜湖

    感觉自己还是很欠缺的,尤其是C++的逆向,对stl的不熟悉,直接误导我静态分析了...然后这种题和平常不同的是没有任何混淆和flag验证,需要的是耐心的分析,在过程中,找到线索,这题还考了base64 ...