C语言&算法概述及理解-day01

C语言程序设计 本篇文章是对C语言程序设计的50个小案例进行了详细的分析介绍,需要的朋友参考下 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去       掉不满足条件的排列。 2.程序源代码: 代码如下: #include <stdio.h> int main() { ... 阅读详情

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


计算机语言

  1. 计算机语言是人与计算机之间的通信语言
  2. 由指令组成,指令包括数字、字符和语法等内容。
  3. 计算机语言可分为三种:机器语言、汇编语言、高级语言。
  • 机器语言: 由二进制数0或1组成的一串指令集合。
  • 汇编语言 :汇编语言用英文字母或字符串来代替机器语言。汇编语言是低级语言。汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。
  • 高级语言: 与人类自然语言相近并为计算机所接受和执行的计算机语言称高级语言,高级语言是面向用户的语言。无论何种机型的计算机,只要配备上相应的高级语言的编译或解释程序,则用该高级语言编写的程序就可以通用。

C语言概述

  • C语言是多范式编程语言,是一种通用的、面向过程式的计算机程序设计语言。
  • 具有高效、灵活、可移植优点。
  • C 语言是最广泛使用的系统程序设计语言,运用在各种系统与应用软件的开发中。

C语言历史

  • C 语言是以 B 语言为基础的,B 语言大概是在 1970 年被引进的。
  • C语言是1972 年发行的,为了移植与开发 UNIX 操作系统,是丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。
  • 1973 年,C 语言是为了编写 UNIX 操作系统而发明的,UNIX 操作系统完全使用 C 语言编写。
  • C 语言标准是于 1988 年由美国国家标准协会(ANSI)制定的。

C语言应用领域

  1. 操作系统:C语言可以开发操作系统,主要应用在个人桌面领域的Windows系统内核,服务器领域的Linux系统内核,freeBSD,苹果公司研发的mac系统。
  2. 应用软件:数据库oracle、MySQL server、微软办公软件office等,都是使用C语言进行开发。
  3. 嵌套式开发:智能手环、智能扫地机器人,传感器、WiFi网络传输模块等使用的硬件驱动库等。
  4. 游戏开发:C语言具有强大的图片处理功能、可移植、高效的特点,一些大型游戏中,游戏环境渲染和图像处理等使用C语言来处理成熟的跨平台游戏openIG,SDL也是使用C语言进行编程的。# 程序设计与算法

C语言开发主流工具

  1. Visual Studio 微软开发工具包 (后期使用)
  2. QT Creator 轻量级工具包
  3. Eclipse 广泛使用的免费跨平台工具
  4. Dev-C++ 初学者学习的轻量包 (新手使用)

算法概述

计算机程序通常具备两个方面的描述:
程序 = 数据结构 + 算法

  1. 数据的描述。
    数据的描述是:数据类型和数据组成形式。
    数据类型是·:整型、浮点型、字符型、组合类型。
    数据组成形式有:链表、队列等。

  2. 对程序中操作数据流程的描述。
    对程序操作的流程的描述即为算法.

算法的特征

算法具有5项特征:

  1. 有穷性:算法必须能在执行有限的步骤内结束且解决问题的问题在合理范围内。
  2. 确定性:算法的每一个步骤必须有确切的定义,不能有二义性或选择不确定的情况。
  3. 输入项:一个算法有0个或多个输入,以获得程序处理的必要信息。
  4. 输出项:一个算法有1个或多个输出,输出是对输入数据价格后产生的结果,没有输出的算法是没有意义的。
  5. 可行性:算法中执行的计步骤都可被分为基本的、可执行的操作步骤。

算法的表示

算法一般有四种表示方式:自然语言、流程图、N-S流程图和伪代码。
画图软件推荐链接: 在线
画图软件推荐链接: 需安装

  • 自然语言描述
    使用自然语言描述表述算法,就是使用自然语言描述问题求解思路的过程。在开源项目内,会使用文档现粗略表述算法,但因容易产生二义性,所以一般不使用自然语言来对算法进行描述。

  • 流程图
    流程图简单直观更易于理解,是最广泛的使用方法,流程图结构表达如下
    在这里插入图片描述
    流程图画图样式:(自行摸索)在这里插入图片描述
    注释:使用注释框来提供有关流程图的额外信息或说明。
    根据不同的需求和场景,使用其他图形符号和元素来表示流程图的各个部分。例如决策树、数据流图等等。

  • N-S流程图
    N-S流程图是一种特殊的流程图,以两位学者名字的第一个字母来命名,称为N-S流程图,也称作盒图。这种流程图完全去掉了流程线,算法的每一步都用一个矩形框来描述,把一个个矩形框按执行的次序连接起来就是一个完整的算法描述。

在这里插入图片描述

  • 伪代码

伪代码是一种非特定编程语言的代码表示形式,它用于描述算法或过程的逻辑,而不依赖于任何特定的编程语法。伪代码的目标是清晰地表达算法或过程的逻辑,以便人们能够理解和分析。
使用伪代码来说明计算两个数的和:

案例伪代码说明:
开始
   定义一个变量sum,并赋值为0
   定义两个变量a和b
   获取用户输入,赋值给a和b
   将a加到sum上
   将b加到sum上
   输出sum的值
结束

学习总结

以上就是今天学习的内容,本文了解C语言历史、C语言进行概述,C语言应用领域及开发主流工具,算法概述、算法特征的认知及算法的表示。

Matlab中eig内置函数转为C语言 本文记录一下如何将MATLAB中的eig函数转为C语言,即通过C语言求解矩阵的特征值与特征向量。[V,D]=eig(Rx)中V为矩阵Rx的特征向量,D为矩阵的特征值。其中Rx维度为12*12的复矩阵。 首先在MATLAB端创建入口函数保存为eigvalue.m: 打开MATLAB Coder,添加入口函数: 3.在定义输入类型窗口中,需要添加输入数据来训练... 阅读详情

相关推荐

HSmartWindowControl vs HWindowControl:Halcon老鸟教你如何根据项目需求选对控件(附性能对比)

本文深度对比Halcon图像处理中的HSmartWindowControl与HWindowControl控件,从性能、内存占用和交互体验等维度提供选型建议。HSmartWindowControl在硬件加速渲染、智能内存管理方面表现优异,特别适合医疗影像和工业检测等高性能需求场景,而HWindowControl则更适合兼容旧系统和资源受限环境。

weixin_30765505的博客 471

【二】c语言程序设计-计算篇

变量是一个保存数据的地方,用一个变量保存了数据,它才能参加到后面的计算当中。eg:int price;int amout;变量 需要一个名字,变量的名字是一种“标识符”,意思它用来识别这个和那个的不同的名字。标识符有标识符的构造规则。标识符只能由字母、数字、和下划线组成,数字不可以出现在第一个位置上,C语言的关键字不可以用作标识符。

Grand Examiner 2470

Windows10 搭建 FTP 服务器

问题: 有这么一个需求,博主需要对班级同学的信息进行收集,同学的信息是一个个的文件, 正常是每个同学将自己的信息打包压缩通过 QQ 或者邮箱方式发送给博主, 博主一个个接收这些压缩包,然后进行解压,再统一放到一个文件夹下, 但是博主觉得这样子实在是太麻烦了,如果某一个同学的信息来回变动,就需要接收很多次,更改很多次, 另外如果消息过多还会产生漏掉某个同学的信息的问题。 解决方法: 如果可以使...

assiduous_me的博客 3966

C语言& ~运算和&运算

读CH378的一些源码,里面有用&~和&两种运算,这里记录一下这两种运算的结果 程序源码 /* C语言测试程序 */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdint.h> int main() { uint16_t m ...

行走在消失中Jack 2万+

前端监控体系:从Sentry到LogRocket错误追踪

Sentry是一款开源的实时错误追踪系统,支持多种语言和框架,包括JavaScript、React、Vue等。它提供了丰富的错误信息、堆栈跟踪和环境数据,帮助开发者快速定位和解决问题。LogRocket是一款前端监控和用户行为分析工具,它提供了视频回放、性能监控、错误追踪等功能。与Sentry不同,LogRocket更注重用户行为的全面分析。前端监控体系是确保应用稳定性和用户体验的重要保障。通过集成Sentry和LogRocket等监控工具,开发者可以实时追踪应用中的错误和用户行为,快速定位和解决问题。

shejizuopin的博客 1316

rk3399开发环境的介绍

由于Bluez的介绍文档有限,以及对Linux 系统/驱动概念、D-Bus 通信和蓝牙协议都有要求,加上网络上其实没有一个完整的介绍Bluez系列的文档,所以不管是蓝牙初学者还是蓝牙从业人员,都有不小的难度,学习曲线也相对较陡,所以我有了这个想法,专门对Bluez做一个系统性的介绍,尽可能的涵盖所有内容。

朝气蓬勃 711

C/C++:与运算、或运算、异或运算、指针

前言忘记进制的同学先看这里: 十进制数,没有前缀 二进制数,前缀是0b 八进制数,前缀是0o 十六进制数,前缀是0x let decimalInteger = 17 let binaryInteger = 0b10001 // 二进制的17 let octalInteger = 0o21 // 八进制的17 let hexadecimalInteger = 0x11 // 十六进制的17 一、与运算 两个都是1,结果就为1;&运算通常用于二进制取位操作;

_ 1万+

Halcon 深度学习实战:PCB 缺陷检测模型的 TensorRT/OpenVino 加速推理

本文介绍了如何利用TensorRT和OpenVino对Halcon深度学习模型进行加速优化,以提升PCB缺陷检测系统的实时性能。文章详细阐述了模型加速框架的选择策略(根据硬件选用TensorRT或OpenVino)、优化流程实施(包括混合精度优化和模型导出)以及加速后的推理实现。实验结果表明,优化后的模型体积缩小40%,推理速度提升2-5倍(GPU环境下从79ms降至38ms,CPU环境下从3804ms降至2152ms),同时保持检测精度。通过完整的代码示例展示了从模型加速到实际部署的全流程,为工业视觉场景

LIN943168247的博客 537

C 语言Day 01 学习总结

【代码】C 语言Day 01 学习总结。

猪猪侠 2695

智能车图像处理22-进阶篇14--小s的判断

这篇文章中主要讲述智能车图像处理中 : 小s的判断方法。

taiyuezyh的博客 2571

多智能体强化学习算法【三】【QMIX、MADDPG、MAPPO】

相关文章: 1.QMIX算法简述 QMIX是一个多智能体强化学习算法,具有如下特点: 1. 学习得到分布式策略。 2. 本质是一个值函数逼近算法。 3. 由于对一个联合动作-状态只有一个总奖励值,而不是每个智能体得到一个自己的奖励值,因此只能用于合作环境,而不能用于竞争对抗环境。 4. QMIX算法采用集中式学习,分布式执行应用的框架。通过集中式的信息学习,得到每个智能体的分布式策略。 5. 训练时借用全局状态信息来提高算法效果。是后文提到的VDN方法的改进。 6. 接上一条,QMIX设计一个神经网络来

丨汀、的博客 5472

C语言教程Day01

文章目录写本文,只是方便个人复习!!!C语言教程Day01——数据类型第一章 VS2017基本操作1.1 创建项目(Project)1.2 添加源文件1.3 编写代码并生成程序1.4 编译(Complie)1.5 调试1.6 如何调出行号1.7 链接(Link)第2章 数据类型、运算符与表达式2.1 数据类型2.2 常量2.3 变量2.4 整型数据2.4.1 符号常量2.4.2 整型常量的不同进制表示1) r 进制转换成十进制2) 十进制转换成 r 进制3) 进制之间的转换4) 不同进制的赋值2.4.3 补

杨丙寅 1104

matlab处理las点云(1)——las/laz格式解析【2024最新版】

matlab中的las/laz格式解析。博客长期更新,本文最近一次更新时间为:2024年11月9日。

点云侠的博客 8460

DAY01 - 初识 C 语言

本章重点在于 “初识” ,意在带领大家叩开 C 语言编程的大门,如果对于某些名词感到陌生,请不必担忧,在后续的章节中将会有更加详细的讲解。

qq3342560494的博客 689

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【Day1】01背包问题|Python

随着Python语言的热度上升,将来将会有越来越多的小伙伴入坑Python。因为它不仅是一门编程语言,更是一个强大的武器。对于非计算机专业的理工科学生来说,可以学不会C但必须要懂Python。因为不管是人工智能/深度学习/爬虫/数据分析等等领域都离不开对于Python的使用。而深入了解并掌握一门编程语言,最好的方法就是学算法。y总曾举过一个例子如果做一个Django框架写一个Web网页的难度是100分,那么数据结构与算法就是5000分。.........

KS的博客 456

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

C语言编程实战:大家一起云刷题 - day4

本文总结了C语言编程中的常见易错点和典型题目解析。通过7个精选案例,包括变量初始化陷阱、指针运算、两数之和算法、回文数判断、链表操作等,深入剖析了C语言的细节特性。特别指出全局变量默认初始化为0、有符号与无符号数比较的隐式转换、指针类型对内存操作的影响等易忽略问题,并提供了链表反转的标准实现方法。这些内容对于C语言初学者理解底层原理和避免常见错误具有重要参考价值。

分享 AI 时代程序员的进阶之路:大模型应用、AI 编程工具实战,同时沉淀 C / Linux 底层技术笔记。与君共赴,万里征途。 1119

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C语言基础01——选择结构

本文介绍了编程中的两种基本条件语句:if语句和switch语句。if语句通过表达式判断执行不同分支,提供了单分支、双分支和多分支的使用示例,如成绩等级划分程序。switch语句则通过匹配case值执行相应代码块,强调了break和default的作用,并展示了星期运动计划和季节判断两个应用案例。文章通过具体代码示例和流程图说明,帮助初学者理解条件控制结构的使用方法和注意事项。

weixin_49647262的博客 390

C语言学习--初始C语言01

一个编程菜鸟的自学C语言笔记day1 刚刚入门学习编程,目前在学C语言,整理一下自己的学习笔记吧,同时也把自己在学习中遇到的一些坑记录下来,希望能帮到在自学中遇到同样问题的小伙伴,如果文章中有存在问题的地方,还恳请各位大佬批评指正。 下载VS2019,安装时却是VS2017的一种解决方法。 在第一次安装VS时,就遇到了一个小问题,自己在官网下载的明明是vs2019,安装时显示的却是vs2017,在网上查阅后,有一种简单的解决办法,碰到类似问题的小伙伴可以参考一下。 在官网下载Professioanl 版本

weixin_48084293的博客 961

C语言强化 day04 多维数组与结构体

一维数组的数组名、数组指针的定义、二维数组的数组名、选择排序法、结构体的深浅拷贝、 结构体嵌套一级指针

月仙儿的博客 278

Day01_刷题niuke20251002

单选题C语言1.以下程序的输出结果是()1234567A11B23C13D20正确答案:B官方解析:这道题目考察了二维数组的访问和对角线元素的求和运算。程序中定义了一个4x4的二维数组aa,然后通过for循环计算主对角线上元素的和。主对角线元素是指数组中行下标等于列下标的元素(即aa[i][i])。让我们逐步计算主对角线元素:将这些元素相加:所以最终输出结果是23,B选项正确。

liujing10232929的博客 1092

数据结构与算法(c语言)--day01

一, 线性表 --顺序存储结构 1.定义顺序表的结构类型(数组静态分配) #define List_max 100 typedef struct List{ ElemType data[List_max]; // 顺序表的最大存储空间,首地址 //ElemType 是类c语言,C语言不能运行,只是数据结构的一种表是方式 ,相当于类型(int float....) //给他就相当于什么 int length; //表中的当前长

qq_63536491的博客 1060

C语言实现万年历(附带源码)

C语言实现万年历(附带源码)

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 847

算法伴学笔记 Day 01 | DFS入门

这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学家,科学家破解这个数字的含义后,再把一个很小的数字加到这个大数上面,把结果告诉火星人,作为人类的回答。一个火星人会让你看他的手指,科学家会告诉你要加上去的很小的数。你的任务是,把火星人用手指表示的数与科学家告诉你的数相加,并根据相加的结果改变火星人手指的排列顺序。的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。个整数的一个排列,用空格隔开,表示火星人手指的排列顺序。

cheer2333的博客 2475

嵌入式学习day01

会首先编译#字开头的指令,比如拷贝#include包含的头文件代码,#define宏定义的替换,以及条件编译。完成预编译后,会进入编译阶段,将源代码转换为汇编语言,编译器会进行词法和语法分析,如果语法正确会生成汇编代码。①:程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项,将所有包含文件预编译为一个“预编译头”。②③:在数据库操作中,预编译的SQL语句可以有效防止SQL注入攻击。

weixin_49387645的博客 652

C语言新手必练:10道经典算法题实战解析(附完整代码)

本文为C语言新手精选了10道经典算法题,包括数字排列组合、利润计算、完全平方数谜题等,每道题都配有详细解析和完整代码实现。通过实战练习,帮助初学者掌握C语言基础语法和算法思维,提升编程能力。特别适合想要巩固C语言基础和算法实践的开发者学习参考。

weixin_29031057的博客 440

Python基础--Day01--Python初识&环境安装

编程语言是一种用于编写计算机程序的形式化语言。它是一种人与计算机之间进行交流的工具,用于描述和指示计算机执行特定任务或完成特定操作的步骤和逻辑。编程语言可以分为多种类型,包括低级语言和高级语言。低级语言如汇编语言直接与计算机硬件交互,更接近机器语言。高级语言如Python、Java、C++等提供了更高级别的抽象和功能,使开发人员能够更快速、易读、易维护地编写程序。机器指令(1930-1960s)机器语言阶段:计算机本质上就是一台只懂得执行简单指令的机器。

废弃的小码农 751
下一篇: Git学习基础-day01
bit_Simona
博客等级 码龄3年 139粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bit_Simona

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值