嵌入式Linux C(四)——基本语句注意点(附题目)
一、if语句陷阱
if语句注意事项
- 非零为真
- if条件后面别加;
- 判断相等时,将常量写在左边
- 规范:if匹配else < 可读性差>
- if条件中的运算符优先级(加上括号)
- 零值比较
整型 if(0 == num) if(0 != num)
布尔型 if(flag) if(!flag)
指针 if(NULL == *ptr) if(NULL !=*ptr)
浮点型 if(x >=-EPSINON)&&(x <= EPSINON)
EPSINON是允许的误差(即精度)
二、循环语句
- 死循环 while(1)/for(;😉
- whlie条件没有==;==
- 循环体里不要直接修改循环变量==!!!==
- 程序优化(嵌套),把长循环放在内层;逻辑判断放在外层
- 编码规范:即使只有一条语句也加上{}
switch语句
- 条件:整数或者字符 表达式
- 格式:不管case下语句有多少条,都要加{}
- default:每个switch语句必须加入default
- 流程:只要匹配到case,如果case里没有break,会一直往下执行
break VS continue
continue(只在循环体):结束当前这次循环,进行下次循环
break:结束当前全部循环
goto语法
loop:
goto
goto使用注意事项
- 尽可能的少用goto语句:goto语句会破坏代码结构;导致代码可读性差
- 标签和goto语句之间切记不要出现变量的定义
goto的使用场景:异常处理
快速处理掉异常
附
- do while(0)的作用 避免else混用,避免goto
程序训练
题目1~n,数字中,有多少个’9’
#include <stdio.h>
int main()
{
int num,sum = 0,temp_i,i;
scanf("%d",&num);
for(i = 0; i <= num; i++)
{
temp_i = i;
while(0 != temp_i)
{
if(9 == (temp_i % 10))
{
sum++;
}
temp_i = temp_i / 10;
}
}
printf("sum = %d",sum);
return 0;
}
题目2
题目:有n个人围成一圈,顺序排号,从第一一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.(提示:用数组完成)
题目3
输入5个数(含负数、小数)将他们按小到大的顺序排列起来(提示:需要排数的数字通过参数传递进来)
分类:
嵌入式Linux C语言
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理