初学c语言的小套路汇总

Joymine 2019-11-09

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;
}

 

相关推荐