选择与循环的做业题讲解
1.代码分析
statick修饰的局部变量,变量的生命周期变长
case语句没遇到break前会一直向下执行,直到switch结束
也会执行default
错误示例:
正确状况:
switch(c)中的c只能是整形表达式
由于对应的case 1:中的1只可能有整形常量表达式与之对应
若是c输入的是其余类型的话将找不到case1的状况
char储存的是字符的ASCII码值,并且ASCII码值都是整形,因此char也算是储存整形常量
因此打印hellothird
a=8时,break了因此a不是7,a是8ide
2.敲代码题函数
注意scanf(),输入时scanf("%d,%d,%d",&a,&b,&c)要按1,2,3输入(原样输入)可是若是中间输入是空格则会默认与前一个字符分隔
建议:中间什么都不加直接%d%d%d输入时直接输入加空格或回车就行
展转相除法求最大公约数
思路
代码的优化
i/2必定大于开平方i
若是开平方i以前不能找到一个因子能整除i,
那么开平方i以后就找不到一个因子能整除i了
sqrt()是一个开平方的数学库函数
须要引头文件#include<math.h>
代码有缺陷
%-2d为左对齐,空格补齐
%2d为右对齐,空格补齐优化