初学c语言的小套路汇总
1.时间与分钟的计数
时间和分钟之间是呈60进制进位的,可先化作统一最小单位分钟后再转化为对应的时间
minutes=count%60(取余)
hour=count/60
2.测试当前的类型大小\测试当先字符串的长度
①printf(“Type int has a size of %zd bytes.\n",sizeof(int))
②scanf("%s",name)//此处scanf无需用&
size=sizeof name//此处无需加括号
letters= strlen(name)
3获取字符串的长度
letter=strlen(name)
4.printf的输出小技巧
① - 使得打印项左对齐
②+ 显示数字的符号
③(空格) 正显示空格、负显示符号
④0 对于数值,用0填充空格 (eg.%02——输出两位 3→03)
⑤数字 最小字段宽度 输出数字整齐美观
5.条件判断时候巧妙利用返回值
①利用scanf 的返回值
while(status==1)实现在status输入值为非数字时退出循环//scanf返回值为检测到的输入项数,类型不匹配时返回值为0/-1
②利用逻辑判断返回值
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;
}