zoukankan      html  css  js  c++  java
  • 初学c语言的小套路汇总

    1.时间与分钟的计数

    时间和分钟之间是呈60进制进位的,可先化作统一最小单位分钟后再转化为对应的时间

    minutes=count%60(取余)

    hour=count/60

    2.测试当前的类型大小测试当先字符串的长度

    ①printf(“Type int has a size of %zd bytes. ",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(" ");
    return 0;
    }

     

  • 相关阅读:
    C#实体类对象修改日志记录
    C#中关于增强类功能的几种方式
    Elasticsearch入坑指南之RESTful API
    React入门实例
    .Net Core+Vue.js+ElementUI 实现前后端分离
    ElasticSearch入坑指南之概述及安装
    MySQL优化技巧
    RabbitMQ入门教程——路由(Routing)
    RabbitMQ入门教程——发布/订阅
    RabbitMQ入门教程——工作队列
  • 原文地址:https://www.cnblogs.com/wengst/p/11828164.html
Copyright © 2011-2022 走看看