#include <stdio.h>

int main(int argc, const char * argv[]) {

    // int 占用4个字节 double 占用8个字节
// 只是相同类型的数据才能进行运算, 隐式类型转换 将小类型转换为大类型, 然后再进行运算
// 在赋值的时候系统又给我们进行了一次隐式类型转换
// 发现, 如果在隐式类型转换的时候, 将大类型转换为小类型会丢失精度
int result = 10.9;
printf("result = %d\n", result); // 强制类型转换格式: (类型)被强制类型转换的数据
int result2 = (int)10.9;
printf("result2 = %i", result2); // 自动类型提升
// 自动类型的提升, 将参与运算的数据都转换为同一类型后再运算
// 会自动将小的数据类型提升为大的数据类型
int result3 = + 9.9; // 1.0 + 9.9 = 10.9 // 在算术运算中, 参与运算的是什么类型, 计算出来就是什么类型
double result = 1.0 / ; // 1.0 / 2.0 --> 0.5
double result = (double) / ;// 1.0 / 2.0 --> 0.5
double result = (double)( / ); // (double)(0) --> 0.0
printf("result = %lf\n", result); // 算术运算符的结合性, 左结合, 从左至右的计算
// 算术运算符的优先级 * / % 大于 + -
// 如果优先级和结合同时存在, 那么先优先级再结核性
int result = + * + ;
printf("result = %i\n", result); return ;
} void test()
{
/*
+ 加法
- 减法
* 乘法
/ 除法
% 取模(取余)
*/
// 1.定义变量保存计算结果
int result;
// 2.开始计算
result = + ;
result = - ;
result = * ;
result = / ;
// 注意: 取模运算只能用于整数
// result = 10 % 3;
// result = 12 % 5;
// result = 10.0 % 3.0;
// 取模运算的正负性取决于左边的操作数, 如果左边为负数, 那么结果就是负数
// result = 10 % -3;
// result = -10 % -3;
// result = -10 % 3; // 如果取模运算的左边小于右边, 那么结果就是左边
result = % ; // 3.验证计算结果
printf("result = %i", result);
}
//
// main.c
// 逗号运算符
//
// Created by xiaomage on 15/6/4.
// Copyright (c) 2015年 xiaomage. All rights reserved.
// #include <stdio.h> int main(int argc, const char * argv[]) { int a = ;
int b = ;
int result;
// 结合性 从左至右
// a = 15, b = 6, result = 15 + 6 = 21
a = a + , b = b + , result = a + b;
printf("a = %i, b = %i, result = %i\n", a, b, result); // 只要是运算符那么一定会有运算结果, 逗号运算符也不例外.
// 逗号运算符的结果是 最后一个表达式的结果 int a = ;
int b = ;
// 6 a = 10 + 5 = 15 b = 5 + 1 = 6
int result = ((a = a + ), (b = b + )); // 仅仅作为了解,逗号表达式返回最后一个的值
printf("a = %i, b = %i, result = %i\n", a, b, result);//15,6,6
return ;
}
//
// main.c
// 赋值运算符
//
// Created by xiaomage on 15/6/4.
// Copyright (c) 2015年 xiaomage. All rights reserved.
// #include <stdio.h> int main(int argc, const char * argv[]) { // 最简单的赋值运算符
// 赋值运算符的结合性: 从右至左
// int result = 10; // 复合赋值运算符: += -= *= /= %=
int result = ;
// result = result + 5;// result = 10 + 5; result = 15
// result += 5; // 相当于 result = result + 5;
result -= ; // 相当于result = result - 5;
printf("result = %i\n", result);
return ;
}
#include <stdio.h>

int main(int argc, const char * argv[]) {
/*
关系运算符:
>
<
>=
<=
==
!=
关系运算符的返回值只有两种, 要么真, 要么假. 1(真)和0(假)
*/ int a = ;
int b = ;
int result = a > b;// 吗? 大于, 真, 非0即真.
printf("result = %i\n", result); int a = ;
int b = ;
int result = a != b;
printf("result = %i\n", result); // 关系运算符注意点
// 关系运算符也有优先级. > < >= <= 优先级大于 == !=
// 1 == 1
int result = == > ; // 算术运算符的优先级 大于 关系运算符
// 2 < 4
int result = + < + ; // 关系运算符的结合型: 从左至右
// 1 > 1
int result = > > ; // 如果优先级和结合性同时存在, 先优先级再结核性
// 11 > 9 == 3 > 1
// 1 == 3 > 1
// 1 == 1
int result = + > + == > ; printf("result = %i\n", result); // 练习
// int result = 3 > 4 + 7; // 3 > 11 = 0
// int result = (3>4) + 7; // 0 + 7
// 5 != 4 + 14 > 3 == 10
// 5 != 18 > 3 == 10
// 5 != 1 == 10
// 1 == 10
int result = != + * > == ;
printf("result = %i\n", result);
return ;
}
//
// main.c
// 自增自减
//
// Created by xiaomage on 15/6/4.
// Copyright (c) 2015年 xiaomage. All rights reserved.
// #include <stdio.h> int main(int argc, const char * argv[]) { int result = ;
// result = result + 5;
// result += 5; // result = result + 1;
// result += 1;
// 自增: 如果想让某一个数加1可以使用自增
// result++;
// result++;
// result = result - 1;
// result -= 1;
// 自减: 如果想让某一个数减1可以使用自减
// result--; // 自增的两种写法
// result++;
// ++result;
// 自减的两种写法
result--;
--result;
printf("result = %i\n", result); // 自增自减写在前面和后面的区别
// 如果++写在变量的前面, 那么会先将变量自增再用自增之后的结果参与运算
// 如果++写在变量的后面, 那么会先将变量的值参与运算再将变量自增
// 总结一句话: ++在前, 先自增再运算, ++在后, 先运算再自增
int a = ;
// int b = a++;// b = 10, a = 11
// int b = ++a;// a = 11, b = 11;
// int b = a--;// b = 10, a = 9;
int b = --a; // a = 9, b = 9;
printf("a = %i , b = %i\n", a, b); // 无论++在前还是在后, 最终都会自增一次
int a = ;
// 10 + 12
// int b = (a++) + (++a);
// a = 12
// b = 22 // 10 + 11
// int b = (a++) + (a++);
// a = 12
// b = 21
// 11 + 12
int b = (++a) + (++a);
// a = 12
// b = 23
printf("a = %i, b = %i\n", a, b); // 5++;
double doubleValue = 10.9;
doubleValue++;
printf("%f", doubleValue); int a = ;
// int b = a++;
// b = a; a = a + 1; int b = ++a;
// a = a + 1; b = a;
printf("a = %i, b = %i\n", a, b); // a = 11, b = 11 return ;
}
//
// main.c
// sizeof
//
// Created by xiaomage on 15/6/4.
// Copyright (c) 2015年 xiaomage. All rights reserved.
// #include <stdio.h> int main(int argc, const char * argv[]) {
// sizeof可以用来计算一个变量或一个常量、一种数据类型所占的内存字节数
// 注意: sizeof是一个运算符, 不是一个函数
// 利用sizeof计算的格式: sizeof(变量/常量/数据类型); // 计算常量占用的内存字节数
// int number = sizeof(10);// 10是一个整型常量, 整型 == int == 4
// 如果利用sizeof计算常量, 那么可以省略()
int number = sizeof ;
printf("number = %i\n", number); // 计算变量
double doubleValue = 10.9;// doubleValue是实型 , 实型 == double == 8
// int number = sizeof(doubleValue);
// 如果利用sizeof计算变量, 那么可以省略()
int number = sizeof doubleValue;
printf("number = %i\n", number); // 计算数据类型
int number = sizeof(char);
// 注意: 如果利用sizeof计算数据类型, ()不能省略
// int number = sizeof char;
printf("number = %i\n", number); return ;
}
//
// main.c
// 逻辑运算符
//
// Created by xiaomage on 15/6/4.
// Copyright (c) 2015年 xiaomage. All rights reserved.
// #include <stdio.h> int main(int argc, const char * argv[]) {
/*
逻辑运算符的返回值只有两种: 要么真要么假, 要么是1(真), 要么是0(假)
&&(与运算)
格式: 表达式1 && 表达式2
结合性: 从左至右
只有表达式1和表达式2都为真的时候, 逻辑与表达式才返回真
如果表达式1或者表达式2中有一个是假, 那么逻辑与表达式返回的结果都是假
口诀: 一假则假 ||(或运算)
格式: 表达式1 || 表达式2
结合性: 从左至右
只要表达式1或者表达式2中有一个是真的, 逻辑或表达式返回的值就是真
只有表达式1和表达式2的值都是假, 逻辑或的值才是假
口诀: 一真则真 !(非运算)
格式: !表达式
结合性: 从右至左
如果表达式是真, 就返回假
如果表达式是加, 就返回真
取反
*/ // 1 && 0
int result = > && > ;
printf("result = %i\n", result); // 1 || 0
int result = > || > ;
printf("result = %i\n", result); int result = !( > );// !0
printf("result = %i\n", result); // 注意点: // 由于C语言规定, 任何数值都有真假性, 非0即真. 所有逻辑运算符可以直接与数值进行计算
// int result = 0 && 11;
// int result = 0 || 0;
// 逻辑非结合性: 从右至左
int result = !!!!!!;//
printf("result = %i\n", result); // 由于逻辑与有一个特点: 一假则假, 所以如果前面的表达式的值为假, 那么后面的表达式没有必要参与运算
// int result = 10 > 18 && 9 > 5; // int a = 10;
// int result = 10 > 18 && ++a > 5;
// printf("result = %i , a = %i\n", result, a); // 由于逻辑或有一个特点: 一真则真, 所以如果前面的表达式的值为真, 那么后面的表达式没有必要参与运算 // 逻辑与和逻辑或的这个特点, 称之为逻辑运算符的短路
int a = ;
int result = > || ++a > ;
printf("result = %i , a = %i\n", result, a); return ;
}
//
// main.c
// 三目运算符
//
// Created by xiaomage on 15/6/4.
// Copyright (c) 2015年 xiaomage. All rights reserved.
// #include <stdio.h> int main(int argc, const char * argv[]) { int a = ;
int b = ;
// int result = a > b;
// 三目运算符格式: 条件表达式 ? 结果A : 结果B
// 结合性: 从左至右
// 只要条件表达式为真就返回结果A, 如果条件表达式为假, 那么就返回结果B
// a大于b吗? 如果a大于b就返回a, 否则返回b
// int result = (a > b)? a : b; // 三目运算符的优先级: 低于关系运算符和算术运算符
// 25 > 15 ? 20 : 15
int result = a + > b ? a : b; printf("result = %i\n", result); // 从键盘输入3个整数, 利用三目运算符取出最大值并输出 // 1.提示用于输出三个整数, 用逗号隔开, 以回车结束
printf("请输入三个整数, 用逗号隔开, 以回车结束\n");
// 2.定义三个变量保存用户输入的数据
int num1, num2, num3;
// 3.利用scanf函数接收用户输入的数据
scanf("%i,%i,%i", &num1, &num2, &num3); // 17, 5, 88
// 4.比较三个数的大小, 取出最大值
// 4.1获取num1和num2中的最大值
// int temp = num1 > num2 ? num1 : num2;// 17 > 5 ? 17 : 5; temp = 17
// 4.2利用num1和num2中的最大值和剩下的num3比较
// int result = temp > num3 ? temp : num3;// 17 > 88 ? 17 : 88; result = 88 // youtube写法 usb写法
// 1.阅读性比较差
// 2.性能也比较差
int result = (num1 > num2 ? num1 : num2) > num3 ? (num1 > num2 ? num1 : num2) : num3;
// 5.输出结果
printf("result= %i\n", result); return ;
}

C4的更多相关文章

  1. 跟我一起数据挖掘(23)——C4.5

    C4.5简介 C4.5是一系列用在机器学习和数据挖掘的分类问题中的算法.它的目标是监督学习:给定一个数据集,其中的每一个元组都能用一组属性值来描述,每一个元组属于一个互斥的类别中的某一类.C4.5的目 ...

  2. 【十大经典数据挖掘算法】C4.5

    [十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 决策树模型与学习 决策树(de ...

  3. C4.5算法的学习笔记

    有日子没写博客了,这些天忙着一些杂七杂八的事情,直到某天,老师喊我好好把数据挖掘的算法搞一搞!于是便由再次埋头看起算法来!说起数据挖掘的算法,我想首先不得的不提起的就是大名鼎鼎的由决策树算法演化而来的 ...

  4. C4.5学习及源码阅读

    下面是C4.5源码的下载地址: http://www.rulequest.com/Personal/ 这里先立一个flag,后续更新...... 恕我孤陋寡闻,第一次看到这样的主函数: #includ ...

  5. 数据挖掘算法(一)C4.5

    统计了14天的气象数据D(指标包括outlook,temperature,humidity,windy),并已知这些天气是否打球(play).如果给出新一天的气象指标数据:sunny,cool,hig ...

  6. ID3、C4.5、CART、RandomForest的原理

    决策树意义: 分类决策树模型是表示基于特征对实例进行分类的树形结构.决策树可以转换为一个if_then规则的集合,也可以看作是定义在特征空间划分上的类的条件概率分布. 它着眼于从一组无次序.无规则的样 ...

  7. C4.5,CART,randomforest的实践

    #################################Weka-J48(C4.5)################################# ################### ...

  8. c4,configure the debug environment

    Yesterday I found a tiny C compiler (less than 600 line of C code, containing commits) called " ...

  9. 决策树 -- C4.5算法

    C4.5是另一个分类决策树算法,是基于ID3算法的改进,改进点如下: 1.分离信息   解释:数据集通过条件属性A的分离信息,其实和ID3中的熵:   2.信息增益率   解释:Gain(A)为获的A ...

  10. C4.5(决策树)

    C4.5是一系列用在机器学习和数据挖掘的分类问题中的算法.它的目标是监督学习:给定一个数据集,其中的每一个元组都能用一组属性值来描述,每一个元组属于一个互斥的类别中的某一类.C4.5的目标是通过学习, ...

随机推荐

  1. flash as3.0学习笔记

    F9开动作模板 trace输出 trace(a); 影片剪辑 var mc:MovieClip = new MovieClip();//属性(x,y轴)方法 play,stop mc.x = 10 / ...

  2. P1982 小朋友的数字

    题目描述 有 n 个小朋友排成一列.每个小朋友手上都有一个数字,这个数字可正可负.规定每个 小朋友的特征值等于排在他前面(包括他本人)的小朋友中连续若干个(最少有一个)小朋 友手上的数字之和的最大值. ...

  3. java集合的学习笔记

    不知不觉也到了java集合这一章的学习,这因该是挺重要的一个章节,因为所有的程序都离不开数据,而一个良好的数据结构和算法应该是程序的灵魂吧. 今天对自己所初步了解的做一个总结: 数据结构是计算机存储. ...

  4. go基础笔记

    1.slice:作为参数传递时,传递的是地址,当append时,在新的内存地址分配数据,但是没有返回给原的slice,只能通过返回值的方式赋值给slice2.func(a []int):传递,可以3. ...

  5. linux抓包命令-tcpdump命令详解

    最近调试支付接口的时候,遇到了一个奇怪的问题:我按照支付接口文档,对接支付通道,当消费业务正常后,调试查余和冲正的时候,支付通道的对接技术告诉我,系统没有我们支付系统的请求报文,数据库和日志中都没有, ...

  6. Ubuntu安装配置Python.pyDev

    一:安装ECLipse Eclipse官网下载软件tar包: 使用解压命令: sudo tar xzvf xxxxx.tar.gz -c /opt/ 创建快捷方式到桌面. 二:安装python-Num ...

  7. 【从零开始】【Java】【1】Git和svn

    闲聊 干活快一年了吧,感觉工作中能干的事情也有一点了,但总有种不通透的感觉,查一个问题,能一路查出一堆不明白的东西. 之前新建过文档是记录点点滴滴的知识的,使用上没问题了,但原理什么的还是不懂,想了想 ...

  8. Java中数组获取最大值

    最大值获取:从数组的所有元素中找出最大值. 实现思路: 定义变量,保存数组0索引上的元素 遍历数组,获取出数组中的每个元素 将遍历到的元素和保存数组0索引上值的变量进行比较 如果数组元素的值大于了变量 ...

  9. mysql 最大连接数

    方式一: 一次性修改  服务重启后还原 查看  show variables like 'max_connections%'; 修改 set GLOBAL max_connections=1024; ...

  10. java 常用API 包装 数据

    package com.oracel.demo01; public class Sjzhhm { public static void main(String[] args) { method(); ...