1. 时间与分钟的计数
时间和分钟之间是呈 60 进制进位的, 可先化作统一最小单位分钟后再转化为对应的时间
- minutes=count%60(取余)
- hour=count/60
2. 测试当前的类型大小 \ 测试当先字符串的长度
- 1printf("Type int has a size of %zd bytes.\n",sizeof(int))
- 2scanf("%s",name)// 此处 scanf 无需用 &
- size=sizeof name// 此处无需加括号
- letters= strlen(name)
3 获取字符串的长度
letter=strlen(name)
4.printf 的输出小技巧
1 - 使得打印项左对齐
2+ 显示数字的符号
3(空格) 正显示空格, 负显示符号
40 对于数值, 用 0 填充空格 (eg.%02-- 输出两位 3→03)
5数字 最小字段宽度输出数字整齐美观
5. 条件判断时候巧妙利用返回值
1利用 scanf 的返回值
while(status==1) 实现在 status 输入值为非数字时退出循环 //scanf 返回值为检测到的输入项数, 类型不匹配时返回值为 0/-1
2利用逻辑判断返回值
while(goat) 只要 goat 不等于 0 则符合条件
6. 找组合
找组合时经常用枚举法, 故可以用循环来做, 并且用 if 语句将符合条件的结果记录或者输出 排列组合问题
7. 更新记录获得最大结果法
在循环中记录下每一个符合条件的值, 随着趋假条件的更新, 最后输出的条件值即为最新值
8. 问题的联想与转化
对于结果只有两种情况的问题, 应该联想到编程语言中的逻辑判断 0/1 例如植树与砍树
9. 整数分解
- #include<stdio.h>
- int main()
- {
- int x;
- scanf("%d",&x);
- int mask=1;
- int t=x;// 保证做完第一次循环之后 x 的值不变
- while(t>9)// 保证 t 还是两位数, 输出正确
- {
- t/=10;
- mask*=10;// 计算该数位数的同时, 获得可得到其最左位的倍数
- }
- do{
- int d=x/mask;
- printf("%d",d);
- if(mask>9){
- printf(" ");// 用条件语句来保证最后输出的无空格
- x%=mask;
- mask/=10;
- }
- }while(mask>0);
- printf("\n");
- return 0;
- }
来源: http://www.bubuko.com/infodetail-3280462.html