IE盒子

搜索
查看: 151|回复: 0

C语言知识点总结

[复制链接]

4

主题

5

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2023-3-28 04:20:38 | 显示全部楼层 |阅读模式
流程控制
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("请输入您的考试成绩\n");
scanf("%f",&score);

if (score > 100)
printf("您是在做梦");
else if (score>=90 &&score<=100)
printf("优秀!\n");
else if (score>=80 && score<90)
printf("良好!\n");
else if (score>=60 && score<80)
printf("及格!\n");
else
printf("不及格!继续努力!");

return 0;
}
对任意三个数排序(要学会对所有数据进行排序)
这个运用的是冒泡排序
将第一个数据与后面的数据进行依次挨个比较,这样可以得到一个最大的数据;
同理可以得到第二大的数据。。。。。最终将数据按照一定的顺序(从大到小/从小到大)进行排序。
例子:
#include<stdio.h>
int main(void)
{
int a,b,c,t;

printf("请输入三个数,并且用空格进行表示\n");
scanf("%d %d %d", &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("%d %d %d", 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("sum = %lf\n", 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("avg = %f\n", avg);
printf("sum = %d\n", sum);
printf("cot = %d\n", cot);

return 0;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表