流程控制

// 符号常量

#define str "一个字符串\n");

// 程序在编译的时候,在代码中凡是看到了 str, 就使用后面的内容替换 str 处的东西


// 宏定义

// 在编译的过程中,有一个预编译(在编译的前面). 在预编译过程进行宏替换


// 符号常量一般用在频繁使用的值上面

-----------------------------------------------$-----四个修饰词------------------------------------------------

#include <stdio.h>

#include <stdlib.h>


// int num; // 变量写在函数内叫定义,写在函数外叫声明

// 外部变量


// 只需要在函数外的变量前加上 static 即可

// 这个由 static 修饰的变量子允许在该文件中被使用


// extern

extern int num;


int main(int argc, const char * argv[]) {

   

    

    // implicity 隐式的

    // explicity 显式的

    // declare 声明

    // 标识符 identifer 就是名字

    --------------------------------------go to  模型--------------------------------------------------------------

int main(int argc, const char * argv[]) {

    

    goto label2;

    

    {

        // 这个事一个代码块,逻辑上是一条语句

    }

    

label1:

    

    printf("打印出标记1\n");

    

    goto label3;

    

    

label2:

    

    printf("打印出标记2\n");

    

    goto label1;

    

    

label3:

    

    printf("打印出标记3\n");


---------------------------------------------------$-------------------------------------------------

//    // 一般代码逻辑较多使用这一种

//    // 判断了

//    if(score < 0 || score > 100) return 0;

//    

//    // 代码执行到这里,意味着什么?

//    

//    

//    // 一般代码的逻辑较少,使用这一种

//    if(score >= 0 && score <= 100) {

//        // 写代码

//    }

    


 

//    // 一般代码逻辑较多使用这一种

//    // 判断了

//    if(score < 0 || score > 100) return 0;

//    

//    // 代码执行到这里,意味着什么?

//    

//    

//    // 一般代码的逻辑较少,使用这一种

//    if(score >= 0 && score <= 100) {

//        // 写代码

//    }

    

   

//    // 一般代码逻辑较多使用这一种

//    // 判断了

//    if(score < 0 || score > 100) return 0;

//    

//    // 代码执行到这里,意味着什么?

//    

//    

//    // 一般代码的逻辑较少,使用这一种

//    if(score >= 0 && score <= 100) {

//        // 写代码

//    }

   

//    // 一般代码逻辑较多使用这一种

//    // 判断了

//    if(score < 0 || score > 100) return 0;

//    

//    // 代码执行到这里,意味着什么?

//    

//    

//    // 一般代码的逻辑较少,使用这一种

//    if(score >= 0 && score <= 100) {

//        // 写代码

//    }

   if(score < 0 || score > 100) return 0;

    

    if(score >= 90) {

        printf("A\n");

    } else if(score >= 80) {

        printf("B\n");

    } else if(score >= 70) {

        printf("C\n");

    } else if(score >= 60) {

        printf("D\n");

    } else {

        printf("E\n");

    }

---------------------------------------$-------------------------------------------------------------



#include <stdio.h>

#include <stdlib.h>


#if 0 // 条件编译


int main(int argc, const char * argv[]) {

    

    /*

        系统提供随机的石头(0),剪刀(1)或布(2)

        提示用户输入

        用户输入(用户输入的是数字)

        比较

        if(计算机 == 用户) 平局

        else if(计算机赢) {

            // ...

        } else {

            // ...

        }

     

        计算机赢

     

        计算机 == 石头 && 用户 == 剪刀

     || 计算机 == 剪刀 && 用户 ==

     || 计算机 == && 用户 == 石头

     

     */

    

    

    // 如何实现随机数的生成

    // 引入头文件 stdlib.h

    // 使用函数

    // int arc4random_uniform(int num);

    // 生成一个 0 num 范围的随机数

    

    

    // int num = 1 + 2;

    // int res = arc4random_uniform(10);

    // 生成一个随机数,这个随机数的取值范围是 0,1,2,3,4,5,6,7,8,9

    // 创建一个100以内的随机数

    // arc4random_uniform(100)

    

    // 科技文中,描述一个范围,常常用一个左值和右值来描述

    // 但是描述范围的时候,如果不加说明,一般左值可以取得到,右值取不到

    

    

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

    

    return 0;

}


#endif




int main(int argc, const char * argv[]) {


    

    // 0, 石头(0), 剪刀(1), (2)

    // 1, 系统提供一个随机数

    int computer = arc4random_uniform(3);

    

    printf("%d\n", computer);

    

    // 2, 提示用户输入

    printf("请玩家输入:石头(0), 剪刀(1), (2)\n");

    int player;

    scanf("%d", &player);

    

    // 3, 验证用户的输入

    if(player != 0 && player != 1 && player != 2) return 0;

    

    // 4, 比较赢家

    if(computer == player) {

        printf("平局\n");

    } else if ((computer == 0 && player == 1)

            || (computer == 1 && player == 2)

            || (computer == 2 && player == 0)) {

        printf("计算机赢\n");

    } else {

        printf("玩家赢\n");

    }

    

    

    return 0;

}





#include <stdio.h>

#include <stdlib.h>


#if 0 // 条件编译


int main(int argc, const char * argv[]) {

    

    /*

        系统提供随机的石头(0),剪刀(1)或布(2)

        提示用户输入

        用户输入(用户输入的是数字)

        比较

        if(计算机 == 用户) 平局

        else if(计算机赢) {

            // ...

        } else {

            // ...

        }

     

        计算机赢

     

        计算机 == 石头 && 用户 == 剪刀

     || 计算机 == 剪刀 && 用户 ==

     || 计算机 == && 用户 == 石头

     

     */

    

    

    // 如何实现随机数的生成

    // 引入头文件 stdlib.h

    // 使用函数

    // int arc4random_uniform(int num);

    // 生成一个 0 num 范围的随机数

    

    

    // int num = 1 + 2;

    // int res = arc4random_uniform(10);

    // 生成一个随机数,这个随机数的取值范围是 0,1,2,3,4,5,6,7,8,9

    // 创建一个100以内的随机数

    // arc4random_uniform(100)

    

    // 科技文中,描述一个范围,常常用一个左值和右值来描述

    // 但是描述范围的时候,如果不加说明,一般左值可以取得到,右值取不到

    

    

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

//    printf("%d\n", arc4random_uniform(10));

    

    return 0;

}


#endif




int main(int argc, const char * argv[]) {


    

    // 0, 石头(0), 剪刀(1), (2)

    // 1, 系统提供一个随机数

    int computer = arc4random_uniform(3);

    

    printf("%d\n", computer);

    

    // 2, 提示用户输入

    printf("请玩家输入:石头(0), 剪刀(1), (2)\n");

    int player;

    scanf("%d", &player);

    

    // 3, 验证用户的输入

    if(player != 0 && player != 1 && player != 2) return 0;

    

    // 4, 比较赢家

    if(computer == player) {

        printf("平局\n");

    } else if ((computer == 0 && player == 1)

            || (computer == 1 && player == 2)

            || (computer == 2 && player == 0)) {

        printf("计算机赢\n");

    } else {

        printf("玩家赢\n");

    }

    

    

    return 0;

}


-----------------------------switch-----------------------------------------------------------------------

/*

     语法:

     switch(整型表达式) {

         case 整型常量或表达式1: 语句1;

         case 整型常量或表达式2: 语句2;

         case 整型常量或表达式3: 语句3;

         ...

         case 整型常量或表达式N: 语句N;

         [default : 语句N+1;]

     }

     

     程序运行到 switch , 首先获得里面的参数. 然后在 case 中找是否有匹配项

     如果没有,直接跳到 default 执行, 然后结束 switch 结构

     如果有, 直接跳到指定的 case , 并执行后面的代码.

     每一个 case 可以跟一个 break 语句. break 语句是的执行完当前 case 后结束

     switch 结构, 如果没有 break, 那么接着执行紧挨着的后面的 case (case的贯穿)

     switch 结构中 default 语句可以省略

     

     注意: switch case , case 语句和 default 语句的位置是任意的

     */


----------------------------------------------------------------------------------------------------


int main(int argc, const char * argv[]) {

    // 0 提示用户输入(num1, oper, num2)

    int num1, num2, res; // 1,, isRight = 1;

    char oper;

    

    

    printf("请输入第一个数字\n");

    scanf("%d", &num1);

    

    getchar(); // 取消回车的影响

    

    printf("请输入运算符\n");

    scanf("%c", &oper);

    

    printf("请输入第二个数字\n");

    scanf("%d", &num2);


    

    // 1 根据 oper 进行计算

    switch (oper) {

        case '+': res = num1 + num2; break;

        case '-': res = num1 - num2; break;

        case '*': res = num1 * num2; break;

        case '/': res = num1 / num2; break;

        // 1,  default: printf("输入的运算符有误\n"); isRight = 0; res = 0;

            

        // 2,

        default: printf("输入的运算符有误\n");return 0;

    }

   


    

    // 2 打印结果

    // 1, if(isRight)

    

    printf("%d %c %d = %d\n", num1, oper, num2, res);

    

    return 0;

}


 ----------------------------------------------------------------------------------------------------



// 铁路托运行李规定:行李重不超过50公斤的,托运费按0.15元每公斤计算,

    // 如果超过50公斤,超出部分每公斤加收0.1元。编程实现上述功能。

    

    // 随着物价的上涨,要求70公斤以下,按每公斤0.2元计算,超出的部分按照0.15元计算

    

    int maxWeight = 70;

    double price = 0.2;

    double deltaPrice = 0.15;

    

    

    // 0, 提示用户输入质量

    printf("请输入重量\n");

    int weight; // 重量

    double money = 0;

    scanf("%d", &weight);

    

    

    // 1, 进行计算

    

    if(weight > maxWeight) {

        money = maxWeight * price + (weight - maxWeight) * (deltaPrice + price);

    } else {

        money = weight * price;

    }

    

    

    // 2, 打印金额

    printf("需要缴费:%.2lf\n", money);







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值