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

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.mfbz.cn/a/578028.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SecretFlow学习指南(2)学习路径

目录 一、模块架构 二、模块详解 三、算法协议 四、学习路线 一、模块架构 良好的分层设计可以提高开发效率和可维护性&#xff0c;满足不同用户的需求。隐语从上到下一共分为六层。 ●产品层&#xff1a;通过白屏化产品提供隐语整体隐私计算能力的输出&#xff0c;让用户简…

paddle ocr模型量化实践

参考&#xff1a;https://github.com/PaddlePaddle/PaddleOCR/blob/main/deploy/slim/quantization/README.md https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7.1/doc/doc_ch/FAQ.md 蒸馏 剪枝 量化 参考&#xff1a;https://blog.csdn.net/mddCSDN/article/de…

【MySQL】MySQL中MVCC多版本并发控制的概念

MySQL中MVCC多版本并发控制的概念 锁相关的知识我们已经学习完了&#xff0c;在其中我们提到过一个概念&#xff0c;那就是 MVCC 。这又是个什么东西呢&#xff1f;今天我们就来好好看看 MVCC 到底是干嘛的。 MVCC 多版本并发控制&#xff0c;它主要是控制 读 操作&#xff0c;…

x264 编码器源码分析综述

================================================================================ 系列文章 x264配置文章链接🔗Windows11编译x264源码https://blog.csdn.net/yanceyxin/article/details/135035650Mac调试x264源码https://blog.csdn.net/yanceyxin/article/details

《软件设计师教程:计算机网络浅了解计算机之间相互运运作的模式》

​ 个人主页&#xff1a;李仙桎 &#x1f525; 个人专栏: 《软件设计师》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ​ ⛺️前言&#xff1a;各位铁汁们好啊&#xff01;&#xff01;&#xff01;&#xff0c;今天开始继续学习中级软件设计师考试相关的内容&#xff0…

python中怎么注释多行

多行代码注释 方法一&#xff1a;先选中要注释的段落&#xff0c;然后按下“ctrl/”&#xff0c;即可实现多行代码的注释。效果如下&#xff1a; 再一次按下“ctrl/”就可以取消注释。 方法二&#xff1a;跟注释单行一样在每一行前面输入“shift#”。 #r(i-arr[idx])*rat[idx]…

三阶魔方公式大全 图解

https://www.mitao521.com/miji/2020112215034.html 三阶魔方七步还原法的公式有R’UF’U’、R’D’RD X,3OR5,R U R’,(RU R’U’),(RU R’U’)3,U’ L’ U L U F U’ F’,U R U’ R’ U’ F’ U F,F(R U R’ U’)F’。 还有(R U R’ U’)2和(R U R’ U’)5,R2 D2 R’ U’ R …

各种螺纹介绍

按用途&#xff0c;有三个主要大类&#xff1a; 第一&#xff0c;连接螺纹&#xff0c;用于紧固&#xff0c;即是螺栓螺母&#xff1b; 第二&#xff0c;传动螺纹&#xff0c;就是车床走刀那种&#xff1b; 第三&#xff0c;管螺纹&#xff0c;管道连接用。 按标准&#xf…

【刷题篇】动态规划-01背包问题(十)

文章目录 1、01背包2、分割等和子集3、目标和4、最后一块石头的重量 II 1、01背包 #include <iostream> #include<vector> using namespace std;int main() {int n,v;cin>>n>>v;vector<int> Weight(n1);vector<int> Value(n1);vector<i…

PDF加密了无法编辑?解密方法来了!

一下午都在捣鼓各种格式问题&#xff0c;首先是需要合并几个 PDF&#xff0c;然而有一个文件加密了无法操作&#xff0c;碰到加密不能编辑就很头痛&#xff0c;终于让我找到一个可行的方法了&#xff0c; 首先就这个加密文件右键选择打开方式-Google Chrome>>打开>>…

环形链表——java

给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;…

2024年Q1季度洗衣机行业线上市场销售数据分析

Q1季度洗衣机线上市场表现不如预期。 根据鲸参谋数据显示&#xff0c;2024年1月至3月线上电商平台&#xff08;京东天猫淘宝&#xff09;洗衣机累计销量约650万件&#xff0c;环比下降14%&#xff0c;同比下降14%&#xff1b;累计销售额约96亿元&#xff0c;环比下降30%&#…

军工单位安全内网文件导出,怎样做到严密的安全管控?

军工单位是指承担国家下达的军事装备、产品研制、生产计划任务的企、事业单位&#xff0c;主要包括电子工业部、航空工业总公司、航天工业总公司、兵器工业总公司、核工业总公司、船舶工业总公司、中国工程物理研究院及各省国防工业办公室等。 军工单位的特点主要体现在以下几个…

(学习日记)2024.04.20:UCOSIII第四十八节:各文件功能概览

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

和鲸科技出席第五届空间数据智能学术会议,执行总裁殷自强受邀发表主题报告

4月26日&#xff0c;由 ACM SIGSPATIAL 中国分会、ACM SIGMOD 中国分会主办的第五届空间数据智能学术会议&#xff08;SpatialDI 2024&#xff0c;下简称“会议”&#xff09;在南京盛大开幕。本次会议特邀李清泉院士、周成虎院士、丛高教授、谢炯博士、张雪英教授等国内外知名…

Matlab|交直流混合配电网潮流计算(统一求解法)

目录 1 主要内容 算例模型 统一求解法迭代方程 算法流程图 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序为matlab代码&#xff0c;采用统一求解法对交直流混合配电网进行潮流计算&#xff0c;统一迭代法又称统一求解法&#xff0c;其思路是将混联系统中的交流网…

基于springboot实现中药实验管理系统设计项目【项目源码+论文说明】计算机毕业设计

基于springboot实现中药实验管理系统设计演示 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了中药实验管理系统的开发全过程。通过分析中药实验管理系统管理的不足&#xff0c;创建了一个计算机管理中药实验管…

LMDeploy量化部署LLMVLM实践-笔记五

本次课程由西北工业大学博士生、书生浦源挑战赛冠军队伍队长、第一期书生浦语大模型实战营优秀学员【安泓郡】讲解【OpenCompass 大模型评测实战】课程 课程视频&#xff1a;https://www.bilibili.com/video/BV1tr421x75B/ 课程文档&#xff1a;https://github.com/InternLM/…

Redis高级篇详细讲解

0.今日菜单 Redis持久化【理解】 Redis主从 Redis哨兵 Redis分片集群【运维】 单点Redis的问题 数据丢失问题&#xff1a;Redis是内存存储&#xff0c;服务重启可能会丢失数据 并发能力问题&#xff1a;单节点Redis并发能力虽然不错&#xff0c;但也无法满足如618这样的高…

有什么因素会影响IP稳定性?

IP稳定性指的是IP地址在一段时间内保持不变的能力&#xff0c;对于网络连接的安全性和可靠性至关重要。以下是一些可能影响IP稳定性的主要因素&#xff1a; 网络服务提供商&#xff08;ISP&#xff09;的政策&#xff1a;不同的ISP对于IP地址的管理和使用有不同的政策。一些IS…