C语言入门课程学习记录5

news2024/11/24 20:34:51

C语言入门课程学习记录5

  • 第23课 - C 语言中的常量
  • 第24课 - 初探程序中的数组
  • 第25课 - 数组特性深入剖析
  • 第26课 - 多维数组的概念与示例

本文学习自狄泰软件学院 唐佐林老师的 C语言入门课程,图片全部来源于课程PPT,仅用于个人学习记录

第23课 - C 语言中的常量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include <stdio.h>

#define FirstValue 1u
#define SecondValue 2.2f

enum
{
    ThirdValue = 333,
    FourthValue = 444,
    // TestValue = 5.5  /* ERROR */  //|error: enumerator value for 'TestValue' is not an integer constant|
};

int main()
{
    unsigned ui = FirstValue;
    int si = FourthValue;

    printf("FirstValue = %u\n", FirstValue);//%u是一种输入输出格式说明符,用于按无符号整数的格式输入或输出数据。
    printf("SecondValue = %f\n", SecondValue);

    printf("ThirdValue = %d\n", ThirdValue);
    printf("FourthValue = %d\n", FourthValue);

    printf("ui = %u\n", ui);
    printf("si = %d\n", si);

    /* ERROR:
    0.001f = 1.0;
    FirstValue = 28;
    ThirdValue = 555;
    */
    return 0;
}


    /*
    output:
FirstValue = 1
SecondValue = 2.200000
ThirdValue = 333
FourthValue = 444
ui = 1
si = 444
    */

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include <stdio.h>

int main()
{
    const int ci = 222;
    const double cd = 1.11;

    int it = ci;
    double dd = cd;

    /* ERROR:
        ci = 333;
        cd = 2.22;
    */

    printf("it = %d\n", it);
    printf("dd = %f\n", dd);

    return 0;
}

在这里插入图片描述

第24课 - 初探程序中的数组

在这里插入图片描述
计算前n个正整数之和

#include <stdio.h>

#include <stdio.h>

int main()
{
    int n = 0;
    int i = 0;
    int flag = 0;
    int sum = 0;

    do
    {
        printf("Input: ");

        scanf("%d", &n);

        flag = ((0 <= n) && (n <= 100));

        if( flag )
        {
            sum = 0;

            for(i=0; i<=n; i++)
            {
                sum += i;
            }

            printf("Sum = %d\n", sum);
        }
    } while( flag );

    return 0;
}

利用数组存储数据,并根据下标返回数值

#include <stdio.h>

int main()
{
    int n = 0;
    int i = 0;
    int flag = 0;

    int sum[101];

    for(n=0; n<=100; n++)
    {
        sum[n] = 0;

        for(i=0; i<=n; i++)
        {
            sum[n] += i;
        }
    }

    do
    {
        printf("Input: ");

        scanf("%d", &n);

        flag = ((0 <= n) && (n <= 100));

        if( flag )
        {
            printf("Sum = %d\n", sum[n]);
        }
    } while( flag );

    return 0;
}

优化,减少循环次数

#include <stdio.h>

int main()
{
    int n = 0;
    int flag = 0;

    int sum[101];

    sum[0] = 0;

    for(n=1; n<=100; n++)
    {
        sum[n] = sum[n-1] + n;    // sum[1] = sum[0] + 1;
                                  // sum[2] = sum[1] + 2;
                                  // ......
    }

    do
    {
        printf("Input: ");

        scanf("%d", &n);

        flag = ((0 <= n) && (n <= 100));

        if( flag )
        {
            printf("Sum = %d\n", sum[n]);
        }
    } while( flag );

    return 0;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

第25课 - 数组特性深入剖析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include <stdio.h>

#define size 8
int a[size];

int main()
{
    int arr[] = { 5, 4, 3, 2, 1 };
    int i = 0;
    int len = sizeof(arr)/sizeof(arr[0]);

    printf("sizeof(arr) = %d\n", sizeof(arr));
    printf("len(arr) = %d\n", len);

    // arr[1.5] = 15;
    // arr = a;

    for(i=0; i<len; i++)
    {
        printf("arr[%d] = %d\n", i, arr[i]);
    }

    return 0;
}


    /*
    output:
sizeof(arr) = 20
len(arr) = 5
arr[0] = 5
arr[1] = 4
arr[2] = 3
arr[3] = 2
arr[4] = 1
    */

在这里插入图片描述

#include <stdio.h>

int main()
{
    int arr[10] = { 0 };
    int i = 0;
    int len = sizeof(arr)/sizeof(arr[0]);
    int x = 0;

    for(i=0; i<len; i++)
    {
        printf("Input NO.%d: ", i + 1);
        scanf("%d", &arr[i]);
    }

    while( 1 )
    {
        printf("Target Number: ");
        scanf("%d", &x);

        for(i=0; i<len; i++)
        {
            if( x == arr[i] )
            {
                break;
            }
        }

        if( i < len )
        {
            printf("Index: %d\n", i + 1);
        }
        else
        {
            printf("No Target Number!\n");
        }
    }

    return 0;
}

在这里插入图片描述
#include <stdio.h>

int main()
{
int arr[] = { 9, 1, 2, 1, 1, 4, 5, 5, 5, 9, 9, 9 };
int i = 0;
int j = 0;
int len = sizeof(arr)/sizeof(arr[0]);
int n = 0;

for(i=0; i<10; i++)
{
    n = 0;

    for(j=0; j<len; j++)
    {
        if( i == arr[j] )
        {
            n++;
        }
    }

    printf("%d: %d\n", i, n);
}

return 0;

}

#include <stdio.h>

int main()
{
    int arr[] = { 9, 1, 2, 1, 1, 4, 5, 5, 5, 9, 9, 9 };
    int i = 0;
    int j = 0;
    int len = sizeof(arr)/sizeof(arr[0]);
    int cnt[10] = {0};
    int num = 0;

    for(j=0; j<len; j++)
    {
        num = arr[j];
        cnt[num] += 1;
    }

    for(i=0; i<10; i++)
    {
        printf("%d. %d\n", i, cnt[i]);
    }

    return 0;
}

在这里插入图片描述

第26课 - 多维数组的概念与示例

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include <stdio.h>

int main()
{
    int a[][3] = { {1, 2, 3}, {4, 5} };
    int s1 = sizeof(a) / sizeof(a[0]);  // 2
    int i = 0;
    int j = 0;

    printf("s1 = %d\n", s1);
    printf("sizeof(a) = %d\n", sizeof(a));
    printf("sizeof(a[0]) = %d\n", sizeof(a[0])); // int[3]

    for(i=0; i<s1; i++)
    {
        for(j=0; j<3; j++)
        {
            printf("a[%d][%d] = %d\n", i, j, a[i][j]);  // 数组的数组可以看作矩阵
                                                        // 因此,可以使用 2 个下标访问矩阵中的值
        }
    }

    return 0;
}

    /*
    output:
s1 = 2
sizeof(a) = 24
sizeof(a[0]) = 12
a[0][0] = 1
a[0][1] = 2
a[0][2] = 3
a[1][0] = 4
a[1][1] = 5
a[1][2] = 0
    */
#include <stdio.h>

int main()
{
    int a[3][3];
    int i = 0;
    int j = 0;

    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            printf("Input a[%d][%d]: ", i, j);
            scanf("%d", &a[i][j]);
        }
    }

    printf("Matrix:\n");

    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            printf("%d    ", a[i][j]);
        }

        printf("\n");
    }

    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            if( i < j )
            {
                int t = a[i][j];
                a[i][j] = a[j][i];
                a[j][i] = t;
            }
        }
    }

    printf("Matrix-T:\n");

    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            printf("%d    ", a[i][j]);
        }

        printf("\n");
    }

    return 0;
}

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1626812.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++解方程组的库

解决多元多次方程组的问题&#xff0c;你可以考虑以下几个C库&#xff1a; Eigen: Eigen库是一个高性能的C模板库&#xff0c;用于线性代数运算。它提供了强大的矩阵运算功能&#xff0c;可以用来解多元一次方程组。对于多次方程组&#xff0c;你可能需要结合Eigen和一些数值优…

关于conda占C盘内存的问题

文章目录 前言一、C盘中.conda文件中的envs二、C盘中.conda文件中的pkgs 前言 最近发现C盘空间越来越少&#xff0c;于是就去清理了一下conda在C盘的存储&#xff0c;不看不知道&#xff0c;一看吓一跳&#xff0c;足足十几G&#xff01;于是去网上搜索了相关的包能不能删除&a…

解决问题:TypeError:unsupported operand type(s) for -: ‘float‘ and ‘decimal.Decimal‘

文章目录 一、现象二、解决方案 一、现象 用Pandas 处理数据的时候&#xff0c;想得到增长率&#xff0c;没想到翻车了&#xff1f; import pandas as pddf pd.read_csv(data.csv)df[增长率] ((df[今年] - df[去年]) / (df[今年]))执行一下语句发现报错 TypeError&#xf…

揭秘快手互动神器:自动评论助力转化!

在这个信息爆炸的时代&#xff0c;每个内容创作者和企业都在寻找提升用户互动和转化的有效途径。无论是短视频、直播还是文章&#xff0c;如何让自己的内容脱颖而出&#xff0c;成为大家关注的焦点呢&#xff1f;今天&#xff0c;我们就要揭秘一款神奇的工具——快手自动评论软…

Python-100-Days: Day01

Day01 Python简介 1.1989年Guido von Rossum在圣诞节之夜开始着手python语言编译器的编写。 2.1991年2月 Python v1 编译器诞生&#xff0c;使用C实现的&#xff0c;此时可以调用C的库函数。 3.1994年1月&#xff0c;Python v1.0 正式版发布。 4.2000年10月16日&#xff0…

JAVA12

JAVA12 1 概述2 语法层次的变化1_swich表达式(预览) 3 API层次的变化1_支持数字压缩格式化2_String新方法3_Files新增mismatch方法 4 关于GC方面的新特性1_Shenandoah GC&#xff1a;低停顿时间的GC&#xff08;预览&#xff09;2_可中断的 G1 Mixed GC3_ 增强G1 5 其他新特性简…

【数据结构】合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 Definition for singly-linked list.struct ListNode {int val;struct ListNode *next;};typedef struct ListNode ListNode; struct ListNode* mergeTwoLists(struct Lis…

通过 QEMU 试用 ESP32-C3 的安全功能

概述 ESP32-C3 系列芯片支持可信启动、flash 加密、安全存储等多种安全功能&#xff0c;还有专用外设来支持 HMAC 和数字签名等用例。这些功能所需的私钥和配置大多存储在 ESP32-C3 的 eFuse 存储器中。 启用安全功能时需要谨慎&#xff0c;因为使用到的 eFuse 存储器是一次…

【leetcode面试经典150题】75. 二叉树展开为链表(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

LINUX系统编程:动静态库的制作

目录 1.为什要有库 2.库的制作 2.1静态库的制作 1.为什要有库 主要有两个原因 提高效率 隐藏源码 例&#xff1a;我写了一个函数&#xff0c;我想让别人使用&#xff0c;但是并不像让使用者看到我写的代码&#xff0c;就可以把我的代码制作成一个库&#xff0c;提供给使用…

了解ASK模块STX883Pro和超外接收模块SRX883Pro的独特之处 STX883Pro模块具有以下特点:

高发射功率&#xff1a;STX883Pro具有较高的发射功率&#xff0c;可实现长距离的信号传输&#xff0c;适用于需要覆盖广泛区域的应用场景。 高频率稳定性&#xff1a;具备稳定的频率输出&#xff0c;确保信号传输的可靠性和一致性&#xff0c;避免频率漂移导致的通信故障。 大…

【07-探索性数据分析(EDA):利用Scikit-learn高效掌握数据特性】

文章目录 前言为何EDA至关重要?使用Scikit-learn进行EDA数据导入与初步检查缺失值检测数据可视化特征分布与转换特征选择多变量分析未来的步骤结论前言 探索性数据分析(EDA)是数据科学的基石之一,它使我们在建模之前可以深入了解数据的本质。本篇博文会带你了解如何使用Sci…

Kafka 消费者应用解析

目录 1、Kafka 消费方式 2、Kafka 消费者工作流程 2.1、消费者工作流程 2.2、消费组者说明 1、消费者组 2、消费者组初始化流程 3、消费者 API 3.1、独立消费者-订阅主题 3.2、独立消费者-订阅分区 3.3、消费组 4、分区的分配策略以及再平衡 4.1、Range 策略 1、R…

吴恩达深度学习笔记:深度学习的 实践层面 (Practical aspects of Deep Learning)1.6-1.8

目录 第一门课&#xff1a;第二门课 改善深层神经网络&#xff1a;超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第一周&#xff1a;深度学习的 实践层面 (Practical aspects of Deep Learning)…

基于JavaWEB的学生考勤管理系统(含论文)

本系统是用Java语言写的&#xff0c;基于JavaWEB的学生考勤管理系统 主要有三大模块&#xff0c;学生&#xff0c;教师和管理员模块&#xff0c;功能如下&#xff1a; 学生模块 教师模块&#xff1a; 管理员模块

Allure精通指南(05)定制化报告内容(环境信息、图标、缺陷类别)

文章目录 Allure 自定义测试环境信息Allure 自定义缺陷类别信息Allure 自定义图标步骤一步骤二步骤三 Allure 自定义测试环境信息 步骤 1&#xff1a;创建 environment.properties 文件 在项目根目录或任何其他不会被--clean-alluredir参数影响的目录下创建 environment.proper…

Redis事务以及Watch监听(通俗易懂)

在执行事务时&#xff0c;要不全执行&#xff0c;要不全不执行。Redis 事务我个人认为不是严格意义上的事务&#xff0c;只是用于帮助用户在一个步骤中执行多个命令。它是通过multi[mʌlti] 表示开启事务&#xff0c;EXEC执行事务&#xff0c;discard 丢失任务。当我们开启事务…

动手学深度学习14 数值稳定性+模型初始化和激活函数

动手学深度学习14 数值稳定性模型初始化和激活函数 1. 数值稳定性2. 模型初始化和激活函数3. QA **视频&#xff1a;**https://www.bilibili.com/video/BV1u64y1i75a/?spm_id_fromautoNext&vd_sourceeb04c9a33e87ceba9c9a2e5f09752ef8 **电子书&#xff1a;**https://zh-v…

如何利用人工智能加速临床试验

如何利用人工智能加速临床试验 Matthew Hutson 著 李升伟 译 从研究设计到患者招募&#xff0c;研究人员正在研究如何运用AI技术加速临床试验过程。 几十年来&#xff0c;计算能力遵循摩尔定律&#xff08;Moore’s law&#xff09;&#xff0c;以可预测的速度前进。集成电路上…

Linux:服务器间同步文件的脚本(实用)

一、功能描述 比如有三台服务器&#xff0c;hadoop102、hadoop103、hadoop104&#xff0c;且都有atguigu账号 循环复制文件到所有节点的相同目录下&#xff0c;且脚本可以在任何路径下使用 二、脚本实现 1、查看环境变量 echo $PATH2、进入/home/atguigu/bin目录 在该目录下…