|
流程控制
1,什么是流程控制
程序代码执行的顺序
2,流程控制的分类
顺序执行
选择执行
定义:
某些代码可能执行,也可能不执行,有选择的执行某些代码
分类
if
1,if最简单的用法
格式:
if (表达式)
语句;
功能:
如果表达式为真,执行语句;
如果表达式为假,语句不执行;
2,if的范围问题
if,else 默认只能执行一个语句的执行或不执行,如果想要控制多个语句的执行或不执行,就必须把这些语句用{ }括起来。
3,if。。。else。。的用法
4,if。。。else 。。。if。。。else
5,C语言对真假的处理
6,if举例--求分数的等级
例子:
#include<stdio.h>
int main(void)
{
float score;
printf(&#34;请输入您的考试成绩\n&#34;);
scanf(&#34;%f&#34;,&score);
if (score > 100)
printf(&#34;您是在做梦&#34;);
else if (score>=90 &&score<=100)
printf(&#34;优秀!\n&#34;);
else if (score>=80 && score<90)
printf(&#34;良好!\n&#34;);
else if (score>=60 && score<80)
printf(&#34;及格!\n&#34;);
else
printf(&#34;不及格!继续努力!&#34;);
return 0;
}
对任意三个数排序(要学会对所有数据进行排序)
这个运用的是冒泡排序
将第一个数据与后面的数据进行依次挨个比较,这样可以得到一个最大的数据;
同理可以得到第二大的数据。。。。。最终将数据按照一定的顺序(从大到小/从小到大)进行排序。
例子:
#include<stdio.h>
int main(void)
{
int a,b,c,t;
printf(&#34;请输入三个数,并且用空格进行表示\n&#34;);
scanf(&#34;%d %d %d&#34;, &a,&b,&c);
if(a<b)
{
t = a;
a = b;
b = t;
}
if(a<c)
{
t = a;
a = c;
c = t;
}
if(b<c)
{
t = b;
b = c;
c = t;
}
printf(&#34;%d %d %d&#34;, a , b ,c);
return 0;
}
7,if的常见问题解析
单门的一个分号是空语句,也是可以执行的。
switch
循环执行
定义:某些代码会重复的执行
分类:
for
while
do ...while
break 和continue
强制类型转化
格式:
(数据类型)(表达式)
功能:
把表达式的值强制转化为前面所执行的数据类型
例子:
#include<stdio.h>
int main(void)
{
int i;
double sum = 0;
for (i=1 ; i<=100; i++)
{
sum = sum + 1/(float)i;
}
printf(&#34;sum = %lf\n&#34;, sum);
return 0;
}
浮点数的存储所带来的问题
float 和double 都不能保证可以精确的存储一个小数(有些可以)
举例:
有一个浮点型变量X,如何判断X的值是否为零
if (|x-0.000001| < = 0.000001)
是
else
不是
为什么循环中更新的变量不能定义成浮点型(因为其为非准确存储,导致循环时出现错误)
例子:
#include<stdio.h>
int main(void)
{
int i;
int sum = 0;
int cot = 0;
float avg = 0;
for (i=1 ; i<=100 ; i++)
{
if(i%2 == 1)
{
sum += i;
cot++;
}
}
avg = 1.0*sum / cot;//1.0默认的是double类型,因此进行了一步强制类型转化
printf(&#34;avg = %f\n&#34;, avg);
printf(&#34;sum = %d\n&#34;, sum);
printf(&#34;cot = %d\n&#34;, cot);
return 0;
} |
|