C流程控制
2015-12-10 19:06
253 查看
选择控制语句
if语句
if(){} 满足条件才会执行
if(); 如果条件成立执行if后面的第一个语句(语句结束的标志是;)
从第二句开始,跟if语句没有关系了.
if(){}else{} 满足条件执行一种方案,否则,执行另一种方案
if(){}else if(){} 满足第一种条件执行一种方案,如果第一种条件不满足,
继续判断是否满足第二种条件,不满足继续判断接下来的别的条件
但:只要有一个满足了,接下来的条件判断不会执行.
switch语句
[/code]
循环语句
for(初始化变量;判断语句;循环变化){}
while(条件){}
do{}while(条件)
如果碰到continue,则跳出本次循环继续下一次判断,如果条件成立继续执行循环.
如果碰到break无论条件满足与否,循环立刻结束.
continue与break跳出的都是当前所在的循环作用域.如果外层有循环,不受影响.
do while至少执行一次.而while不一定.
C语言函数
函数是一组特定的代码块,执行特定的任务。当你需要执行一个函数体时,你只需要调用函数的标示名。
定义: 返回值类型 函数名(形式参数类型 参数名1,……){
具体代码
return 返回值
}
调用: 函数名(实际参数1,实际参数2,…..);
1.返回值类型不定义默认是int.如果不需要具体返回值类型用void(return可以省略).
2.是否要定义参数看是否有未知内容参与运算,调用时参数必须对应.参数传递的是值.
3.return可以有多个,但是如果执行到return就不会再执行后面的代码,函数执行结束.
4.函数不调用不执行,执行顺序看调用顺序.定义了返回值类型可以不返回.(不建议).
5.函数必须定义才能调用,但不能重复定义.不能嵌套定义.不能自已调用自已(死递归).
选择排序和冒泡排序
[/code]
if语句
if(){} 满足条件才会执行
if(); 如果条件成立执行if后面的第一个语句(语句结束的标志是;)
从第二句开始,跟if语句没有关系了.
if(){}else{} 满足条件执行一种方案,否则,执行另一种方案
if(){}else if(){} 满足第一种条件执行一种方案,如果第一种条件不满足,
继续判断是否满足第二种条件,不满足继续判断接下来的别的条件
但:只要有一个满足了,接下来的条件判断不会执行.
switch语句
1.条件结果只能是整数,而case只能是整型常量.注意:case ‘a’;
2.break 可有可无,有则执行完跳出,没有则继续执行,直到遇到下一个break或执行完.
3.default可有可无,有则如果条件都不满足,会执行这句,无则条件都不满足,执行结束.
4.case下面要定义变量必须加{} 且case后的常量值不能重复
5.switch语句可以全部用if语句替代.但if语句不能全用switch替代.
int a=5;
switch (a) {
case 'a'://==case 97:
printf("a=1\n");
break;
case 2:
printf("a=2\n");
break;
case 3:
printf("a=3\n");
break;
default:
printf("没有匹配的int值\n");
break;
}
[/code]
循环语句
for(初始化变量;判断语句;循环变化){}
while(条件){}
do{}while(条件)
如果碰到continue,则跳出本次循环继续下一次判断,如果条件成立继续执行循环.
如果碰到break无论条件满足与否,循环立刻结束.
continue与break跳出的都是当前所在的循环作用域.如果外层有循环,不受影响.
do while至少执行一次.而while不一定.
C语言函数
函数是一组特定的代码块,执行特定的任务。当你需要执行一个函数体时,你只需要调用函数的标示名。
定义: 返回值类型 函数名(形式参数类型 参数名1,……){
具体代码
return 返回值
}
调用: 函数名(实际参数1,实际参数2,…..);
1.返回值类型不定义默认是int.如果不需要具体返回值类型用void(return可以省略).
2.是否要定义参数看是否有未知内容参与运算,调用时参数必须对应.参数传递的是值.
3.return可以有多个,但是如果执行到return就不会再执行后面的代码,函数执行结束.
4.函数不调用不执行,执行顺序看调用顺序.定义了返回值类型可以不返回.(不建议).
5.函数必须定义才能调用,但不能重复定义.不能嵌套定义.不能自已调用自已(死递归).
选择排序和冒泡排序
选择排序
核心:把最大(最小)的数依次选出来,依次放到相应的角标上去.
2 1 5 3 4
1 2 3 4 5
int arr[5]={2,1,5,3,4};
//这个数组有多少个元素,则就应该选多少次
for (int i=0; i<5; i++) {
//在求每一次最值
int tempMinIndex=i;
for (int y=i; y<5; y++) {
if (arr[tempMinIndex]>arr[y]) {
tempMinIndex=y;
}
}
//把最值跟当前这一轮的首元素做交换
int temp=arr[tempMinIndex];
arr[tempMinIndex]=arr[i];
arr[i]=temp;
}
for (int i=0; i<5; i++) {
printf("%d ",arr[i]);
}
printf("\n");
冒泡排序
核心是:把最值冒出来.
int arr[5]={2,1,-1,3,4};
for (int i=0; i<5; i++) {
//把当前返回内的最值冒出来--相邻的两两比较
for (int y=0; y<5-i; y++) {
//当前元素比其下一个更大,则交换位置
if (arr[y]>arr[y+1]) {
//交换
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
for (int i=0; i<5; i++) {
printf("%d ",arr[i]);
}
printf("\n");
[/code]
相关文章推荐
- Kalman滤波器从原理到实现
- mybatis中使用in查询时的注意事项
- Caffe 深度学习框架上手教程
- hdu 5590 ZYB's Biology
- Struts框架中字符串String与时间Date类型转换器
- 不同数据库取并集、交集、差集
- BestCoder Round #53 (div.2) C.Rikka with Graph II(dfs)
- 苹果通知推送服务(APNS)一些关键特性摘要
- C基本运算
- android项目启动应用,卸载应用,分享
- squee_spoon and his Cube VI(贪心,找不含一组字符串的最大长度+kmp)
- 扫描二维码有什么用
- JavaScript性能---加载及执行
- python:多线程
- 关于WCF服务在高并发情况下报目标积极拒绝的异常处理
- 统计单词个数
- Linux 文件夹说明
- HDU 1394&& ZOJ 1484 求最小的逆序数 (线段树)
- 分页计算总页数算法
- 05.集成ShareSDK社会化分享组件