C语言中,嵌套的if语句的一些经验...

double f(double x)
{
double result;
if(x<0)
result=-x+sin(x);
else if(x==0)
result=0;
     else if(10>x>0)
          result=log2(x);
          else if(x>=10)
          result=pow(x,2);
return result;
}

double f(double x)
{
double result;
if(x<0)
result=-x+sin(x);
else if(0<x<10)
result=log2(x);
else if(x==0)
result=0;
else if(x>=10)
result=pow(x,2);
return result;
}

对于上述两种写法,第一种是正确的,因为那些数大小的顺序有逻辑性(现阶段的理解)

原文地址:https://www.cnblogs.com/advsd/p/11778481.html

时间: 2024-10-13 20:54:24

C语言中,嵌套的if语句的一些经验...的相关文章

c语言中的break 和 continue语句

break break如果用于循环适用于终止循环 break如果用于switch,则是用来终止switch break不能直接用于if,除非if属于循环内部的一个子句  如 if (表达式)  break 是错误的 1 # include <stdio.h> 2 3 int main (void) 4 { 5 int i; 6 7 for (i=0; i<3; ++i) 8 { 9 if (3 >2) 10 break; //break 虽然是if内部的语句,但break终止的是外

C语言中switch...case语句中break的重要性

在C语言中switch...case语句是经常用到的,下面我介绍一下在使用该语句时候需要注意的一个细节问题.话不多说,直接举例子: 例子1: switch(fruit) { case 1:printf("apple"); break; case 2:printf("banana"); break; case 3:printf("orange"); break; case 4:printf("pear"); break; cas

C语言中,头文件和源文件的关系(转)

简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件)4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用objcopy生成纯二进制码,也就是去掉了文件格式信息.(生成.exe文件) 编译器在编译时是以C文件为单位进行的,也就是

C语言中.h和.c文件解析(转载)

转载:http://www.cnblogs.com/laojie4321/archive/2012/03/30/2425015.html   简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:       1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件) 4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相

C语言中setjmp与longjmp学习笔记

一.基础介绍 ?? ?头文件:#include<setjmp.h> ?? ?原型:??int?setjmp(jmp_buf envbuf) ?? ?宏函数setjmp()在缓冲区envbuf中保存系统堆栈里的内容,供longjmp()以后使用.首次调用setjmp()宏时,返回值为0,然而longjmp()把一个变原传递给setjmp(),该值(恒不为0)就是调用longjmp()后出现的setjmp()的值. void longjmp(jmp_buf envbuf,int status);

转-C语言中.h和.c文件解析

C语言中.h和.c文件解析(很精彩)   简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:       1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件) 4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用objcopy生成纯二进制码,也就是去掉了文件格式信息.(生成.e

在Swift语言中,关于Any,AnyObject,AnyClass的区别与联系

在Swift语言中,协议定义类或结构体应该遵守的变量和方法集合,如下所示,这个一个标准的协议的声明: protocol NSObjectProtocol { func isEqual(object: AnyObject?) -> Bool var hash: Int { get } var superclass: AnyClass? { get } func `self`() -> Self! func isProxy() -> Bool func isKindOfClass(aClas

C语言中volatilekeyword的作用

一.前言 1.编译器优化介绍: 由于内存訪问速度远不及CPU处理速度,为提高机器总体性能,在硬件上引入硬件快速缓存Cache,加速对内存的訪问.另外在现代CPU中指令的运行并不一定严格依照顺序运行,没有相关性的指令能够乱序运行,以充分利用CPU的指令流水线,提高运行速度.以上是硬件级别的优化.再看软件一级的优化:一种是在编写代码时由程序猿优化,还有一种是由编译器进行优化.编译器优化经常使用的方法有:将内存变量缓存到寄存器:调整指令顺序充分利用CPU指令流水线,常见的是又一次排序读写指令.对常规内

黑马程序员--C语言中的static

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1. 全局静态变量 在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量. 1. 内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在) 2. 初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化) 3. 作用域:全局静态变量在声明他的文件之外是不可见的.准确地讲从定义之处开始到文件结尾. 定义全局静态变量的好处: 不会