C语言初阶:分支与循环(少量数组)

ANSYS Maxwell:创建即用型 3D 轴向磁通电机模型 Magnet Length” 是磁体的径向长度。“Magnet Thickness” 是磁体的轴向长度。为了对 AFM 进行更详细的分析,用户需要在 ANSYS Maxwell 中运行 3D FEA 分析。对于 2D 模型,它们类似于 MotorCAD 中的模型,后者对等效的直线电机进行建模。单击“确定”后,将创建一个 3D Maxwell 模型。“长度”是转子铁的轴向长度。然后需要定义定子的“磁芯”尺寸和材料。“长度”是定子铁芯的轴向长度。“转子”# 的极数必须与“定子”中定义的磁极相同。 阅读详情
   拒绝死循环:大一新生C语言分支与循环语句生存指南![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/8c9accecc4504d1ba4e741c7628c432d.png)

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f96c617b77c741c5954efce17e7e585d.png
欢迎来到C语言的世界,各位大一的新同学们。如果在前几节课你被变量、数据类型和顺序结构折磨得痛不欲生,那么恭喜你,你已经度过了新手村最枯燥的阶段。从今天开始,你的程序将不再是一个只会按部就班执行指令的”铁憨憨”,它将学会”做选择”和”重复劳动”。
分支和循环语句,是编程思维的第一次真正觉醒。掌握了它们,你才算真正推开了计算机世界的大门。这篇博客将带你用最接地气的方式,快速通关C语言中最核心的控制流语句,准备好你的键盘,让我们开始这场代码的”套娃”之旅。

分支语句:让你的程序学会”做选择”
现实世界充满了选择:中午吃食堂还是点外卖?这节课去不去点名?在C语言中,这些选择由分支语句来完成。
if 家族:万能的十字路口
if 语句是你最常用的分支工具。它的基本形态、双分支 if-else 以及多分支 else if,相信大家在高中信息技术课上已经见过面了。但到了大学,我们需要关注更深层的逻辑。

int score = 85;

// 多分支判断
if (score >= 90) {
    printf("优秀,奖励自己一杯奶茶\n");
} else if (score >= 60) {
    printf("及格,勉强维持生命体征\n");
} else {
    printf("挂科预警,准备重修费\n");
}

核心避坑指南:悬空 else 问题 这是新手最容易踩的坑之一。当 if 嵌套时,else 到底跟谁走?C语言的规则是:else 总是与最近的、未配对的 if 匹配。

int a = 1, b = 2;
if (a == 2)
    if (b == 2)
        printf("a和b都是2\n");
else
    printf("a不是2\n"); // 你以为这是外层if的else?错!它属于内层if

为了防止这种”渣男/渣女”行为,强烈建议:只要涉及分支,永远加上大括号 {}。这不仅是规范,更是保命符。
switch 开关:精准打击的利器
当你面临多个固定值的判断时,if-else if 会显得冗长,这时 switch 就是你的最佳选择。

int day = 3;
switch (day) {
    case 1:
        printf("周一,痛苦的开始\n");
        break; // 千万别忘了break!
    case 2:
        printf("周二,还在缓冲\n");
        break;
    case 3:
        printf("周三,小周末\n");
        break;
    default:
        printf("其他日子,继续熬\n");
        break;
}

核心避坑指南:穿透效应 (Fall-through) switch 语句中,如果没有 break,程序会从匹配的 case 开始,一路向下执行所有代码,直到遇到 break 或大括号结束。这被称为”穿透”。除非你刻意利用这个特性(比如多个 case 执行相同逻辑),否则每个 case 后面必须老老实实写上 break。另外,case 后面的标签必须是整型常量表达式,不能是变量。

逻辑与条件操作符:让判断更优雅
写分支语句离不开各种操作符,这里我们重点聊聊那些容易让你”翻车”的细节。
关系操作符:别把赋值当判断
关系操作符包括 ==, !=, >, <, >=, <=。
千古恩怨:== 与 = == 是判断相等,= 是赋值。新手最常犯的错误就是把 if (x == 3) 写成 if (x = 3)。在C语言中,x = 3 这个表达式的值是 3(非0即为真),所以这个判断永远为真,而且还会把 x 的值强行改成 3。
防御技巧:养成习惯,把常量写在左边,写成 if (3 == x)。如果你不小心写成了 if (3 = x),编译器会直接报错,因为常量不能被赋值。
连环坑:关系运算符不宜连用 数学里我们写 1 < x < 10 觉得很正常,但在C语言中,1 < x < 10 的实际执行顺序是 (1 < x) < 10。(1 < x) 的结果是 0 或 1,然后再和 10 比较,结果永远为真。正确写法是 x > 1 && x < 10。
逻辑操作符与短路特性
逻辑操作符有三个:! (非), && (与), || (或)。
这里有一个极其重要且面试常考的概念:短路特性。
•&&:如果左边的表达式为假,右边的表达式根本不会执行。
•||:如果左边的表达式为真,右边的表达式根本不会执行。

int a = 0, b = 5;
if (a != 0 && b++ > 0) {
    // 因为 a!=0 为假,b++ 永远不会执行,b依然是5
}

利用短路特性,我们可以写出非常安全的代码,比如 if (ptr != NULL && ptr->data > 0),如果指针为空,就不会去访问 data,从而避免了程序崩溃。
条件操作符(三目操作符)
expr1 ? expr2 : expr3 是 if-else 的极简版。当逻辑简单且需要返回值时,用它能让代码更紧凑。

*int max = (a > b) ? a : b;* // 优雅地取最大值

循环三剑客:让程序学会”重复干活”
计算机最擅长的就是不知疲倦地重复。C语言提供了三种循环语句,各有千秋。
while 循环:先判断再执行

int i = 0;
while (i < 10) {
    printf("%d ", i);
    i++;
}

先判断条件,条件为真才执行循环体。如果初始条件就不满足,循环体一次都不会执行。
for 循环:结构最严谨的打工人
for(初始化; 判断; 调整) 将循环的三个核心要素集中在一行,逻辑清晰,是实际开发中最常用的循环。

// 标准写法
for (int i = 0; i < 10; i++) {
    printf("%d ", i);
}

扩展知识:for 的花式玩法
1.C99 标准允许在初始化部分声明变量(如上例),变量的作用域仅限于循环内部,非常安全。
2.省略表达式:for(;😉 等同于 while(1),是一个死循环。
3.逗号表达式:for(i=0, j=10; i<j; i++, j–) 可以同时控制多个变量,常用于数组的首尾遍历。
do-while 循环:先斩后奏

int i = 0;
do {
    printf("%d ", i);
    i++;
} while (i < 10);

先执行一次循环体,再判断条件。无论条件是否成立,循环体至少执行一次。这非常适合用于”菜单选择”等场景,因为菜单至少要显示一次让用户选。
扩展:三种循环怎么选?
•次数明确:首选 for。
•次数不明确,可能一次都不执行:选 while。
•次数不明确,但至少执行一次:选 do-while。

break 和 continue:循环中的”刹车”和”跳过”
在循环中,我们需要更精细的控制权。
•break:永久终止整个循环,直接跳到循环体外的下一条语句。
•continue:跳过本次循环剩余的代码,直接进入下一次循环的判断。
高能预警:continue 在 for 和 while 中的行为差异 这是考试和面试的绝对重点!在 while 中,continue 会直接跳到条件判断处。但在 for 循环中,continue 会先执行表达式3(调整部分),然后再去判断条件。

for (int i = 0; i < 5; i++) {
    if (i == 2) continue;
    printf("%d ", i); // 输出:0 1 3 4
}

理解了这个差异,你就超越了 80% 的新手。

循环嵌套:套娃的艺术
循环里面套循环,就是嵌套。最经典的例子就是打印图形、九九乘法表,以及寻找素数。

// 寻找 100-200 之间的素数
for (int i = 100; i <= 200; i++) 
{
    int is_prime = 1; // 假设它是素数
    for (int j = 2; j < i; j++) 
    {
        if (i % j == 0) 
        {
            is_prime = 0; // 能被整除,不是素数
            break;        // 找到因子就跳出,没必要继续试了
        }
    }
    if (is_prime) 
    {
        printf("%d ", i);
    }
}

性能优化提示:在找素数的例子中,内层循环其实不需要试到 i-1,只需要试到 sqrt(i) 即可。这就是算法优化的魅力,同样的逻辑,时间复杂度天壤之别。

随机数与实战:猜数字游戏
学了这么多,我们来做一个真正能玩的游戏。C语言通过 rand() 函数生成伪随机数,但它每次生成的序列是一样的,需要用 srand() 配合 time() 设置随机种子。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void game() {
    int guess = 0;
    int target = rand() % 100 + 1; // 生成 1~100 的随机数

    while (1) {
        printf("请输入你猜的数字: ");
        scanf("%d", &guess);
        if (guess < target) printf("猜小了\n");
        else if (guess > target) printf("猜大了\n");
        else {
            printf("恭喜你,猜对了!\n");
            break;
        }
    }
}

int main() {
    srand((unsigned int)time(NULL)); // 用时间戳做种子
    int input = 0;
    do {
        printf("1. 开始游戏  0. 退出游戏\n");
        scanf("%d", &input);
        switch (input) {
            case 1: game(); break;
            case 0: printf("下次再来玩\n"); break;
            default: printf("输入错误,请重新选择\n");
        }
    } while (input);
    return 0;
}

这个程序完美融合了 do-while 菜单控制、switch 分支、while 游戏循环以及随机数生成,是检验分支循环掌握程度的最佳试金石。

goto 语句:最后的”核武器”
goto 是一个充满争议的语句。在绝大多数现代编程规范中,它被明令禁止,因为它会破坏程序的结构化,让代码变成难以维护的”意大利面条”。
但是,在极少数特定场景下,它依然有存在的价值。比如在 Linux 内核和 SQLite 的源码中,goto 被集中用于统一的错误处理和资源释放。当函数中有多层嵌套和多次内存分配时,如果中途出错,用 goto 跳转到统一的清理标签,比层层 return 或嵌套 if 要清晰得多。
对于大一新生,请记住:知道它的存在,理解它的危害,但在你成为顶级系统程序员之前,永远不要用它。

扩展知识总结:常见面试坑与最佳实践
为了让你在期末和未来的面试中游刃有余,这里总结几条黄金法则:
1.永远不要省略大括号:哪怕只有一行代码。无数安全漏洞(如著名的苹果 goto fail 漏洞)都是因为少写了大括号。
2.常量放左边:if (NULL == ptr) 优于 if (ptr == NULL)。
3.警惕浮点数比较:不要直接用 == 比较两个浮点数,由于精度问题,应该判断它们的差值是否在一个极小范围内(如 fabs(a - b) < 1e-6)。
4.循环边界条件:写 for 循环时,永远想清楚是 < 还是 <=,数组越界是C语言最常见的崩溃原因。
5.避免死循环:确保循环体内有改变条件的语句,且该语句一定会被执行到(注意 continue 的影响)。
6.switch 必须有 default:即使你认为所有情况都覆盖了,也要加上 default 并做适当处理(如报错或断言),这是防御性编程的基本素养。

结语
分支和循环,赋予了程序逻辑的灵魂。从这一刻起,你写的不再是死板的指令序列,而是能够思考、能够适应、能够解决复杂问题的智能体。
这篇博客涵盖了课件中的核心知识点,但纸上得来终觉浅。C语言是一门必须”敲”出来的语言。把文中的代码自己敲一遍,故意改错看看编译器的反应,尝试修改猜数字游戏的难度,在循环嵌套中打印出更复杂的图形。
不要害怕报错,每一个红色的 Error 都是你通往高手之路的垫脚石。祝各位大一新生在C语言的海洋里乘风破浪,永不 Segmentation Fault(段错误)!

别再手搓SVG了!用Vue3+SVG.js快速搭建电力系统拓扑图(附完整代码) 本文介绍了如何利用Vue3和SVG.js实现电力系统拓扑图的低代码开发,通过组件化和响应式数据绑定,大幅提升开发效率。文章详细解析了SVG.js的核心功能,包括图形创建链式API、动态属性绑定和高级图形操作,并提供了断路器组件的完整实现代码。此外,还分享了性能优化策略和调试技巧,帮助开发者应对大规模拓扑图的挑战。 阅读详情

相关推荐

DySAT+: Enhancing Dynamic Graph Representation Learning with Multi-Head Self-Attention and Temporal-

本文深入探讨了DySAT+模型在动态图表示学习中的创新应用,通过多头时空注意力机制和层级信息融合策略,有效解决了动态图数据中的时间维度信息捕捉和结构演变动态适应问题。该模型在社交网络异常检测和金融交易网络分析等场景中表现出色,显著提升了预测准确率和响应速度。

weixin_29035405的博客 336

C语言的循环与数组

本文系统讲解C语言中循环与数组两大核心编程概念。循环部分详细解析while、do-while、for三种循环结构的特点及适用场景,并介绍break和continue的控制方法。数组部分重点阐述一维数组、二维数组和字符数组的特性,包括内存存储方式、初始化规则及常用操作,特别强调字符数组作为字符串实现的关键点。文章深入探讨循环与数组的协同应用,如排序算法、查找算法等典型场景,指出二者结合是构建C语言程序逻辑的基础。通过系统学习这些核心概念,读者可以夯实编程基础,培养结构化思维,为后续学习更高级的编程特性做好准备

2603_95067763的博客 969

LVGL v9的lv_scale控件实战:5分钟打造动态仪表盘(附完整代码)

本文详细介绍了LVGL v9中lv_scale控件的实战应用,通过5个关键步骤快速打造动态仪表盘。文章涵盖核心特性解析、代码实现、样式定制及性能优化,适用于工业HMI、智能家居等场景,并附完整代码示例。

gin88的博客 262

学习C语言的分支与循环的一些记录

这样一串代码运⾏的结果是啥?很多人上来就判断 a 是0且不等于1,那就执⾏else,打印hello,B .但是当你去运⾏代码,输出的结果却是:啥都不输出。改成这样便会这样好在C语言中有着这样的规定:就近原则(即else始终会与同一括号最近的未匹配的if语句去结合)所以在写if语句时,记得利用{}增加可读性,帮助计算机理解代码。

Nqg11的博客 1863

葵花 Himawari 8/9号数据学习记录-01-数据初识

葵花卫星学习记录,第一章:卫星的来源与卫星数据的波段介绍

weixin_44111909的博客 539

从零搭建智能视觉小车:OpenART图像处理+增强现实避坑指南

本文详细指导如何从零搭建智能视觉小车,重点介绍OpenART图像处理与增强现实技术在AprilTag识别中的应用。涵盖硬件选型、环境配置、算法优化及实战调试全流程,特别分享智能汽车竞赛中的避坑技巧和优化方案,帮助开发者构建稳定高效的视觉系统。

yhn456789的博客 1056

学习笔记:C语言从初阶到进阶

这篇是学习笔记:记录C语言学习过程中的要点。记录从初阶到进阶。

qq_45743853的博客 1180

【离线OCR】微信离线实现图片OCR文本和表格识别

基于微信本地OCR引擎(由最新版微信自动安装)。通过Python对其官方调用逻辑进行完整翻译和封装,使开发者可以用简单的API调用其强大的OCR功能。

专注于医院数据分析技术与系统开发的创作与分享。 2625

c语言入门笔记

本文记录本人初次接触c语言的学习笔记,对于c语言的初阶学习有很大的帮助,总结不易,如果喜欢的话记得点赞加收藏哟,万分感谢!!!

weixin_54342360的博客 8825

qq对接openclaw,通过qq发送命令

把 OpenClaw 接入 QQ 和微信,目前主流的微信文章和教程主要提供了两种截然不同的路径。我为你梳理了它们的核心区别和关键步骤,你可以根据自己的需求来选择。

suny8的专栏 270

2025年抖音面试:商业生态与安全质量运营技能要求及面试

在商业生态与安全岗的质量运营工作中,规则运营职责占据着极为重要的地位,它是保障内容风控质量的关键环节。

王国平的博客 609

C语言初阶:猜数字小游戏项目(不含数组,少量指针)

本文通过实现“猜数字游戏”系统讲解C语言分支与循环的综合应用,涵盖if、switch、while、do-while等控制结构,并重点介绍随机数生成原理及范围限定方法。结合rand()与srand(time(NULL))实现伪随机数,通过模块化设计(如独立game()和menu()函数)提升代码可读性。最后提出扩展挑战:限制猜测次数与计时功能,强化实战能力,为后续学习数组、函数打下坚实基础。

JYF2007ABC的博客 486

2024年全国青少年信息素养大赛复赛真题(算法创意实践挑战赛C++试卷:带解析)

2024年全国青少年信息素养大赛复赛真题(算法创意实践挑战赛C++试卷:带解析)

王老师青少年编程 4786

【C语言初阶笔记】初识c语言

1.什么是c语言 C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。 (1) 语言组成 数据类型 C的数据类型包括:整型(short、int、lon

ljp 3635

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

大一新生必备:关于C语言的分支与循环语句

while循环包括三个阶段:第一个阶段:初始化阶段,第二个阶段:判断阶段,第三个阶段:调整阶段。初始化阶段:首先对变量赋予一个初始值,这个初始值将会是循环的首个值,如果题干要求从1开始,那么初始值就赋1,以此类推。for循环也分为初始化、判断和调整阶段,相对于while循环,现在更多的是应用for循环,它和while循环的区别是书写方式不同,但是却有异曲同工之处。

weixin_65826992的博客 540

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

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

初识C语言【2】——分支、循环语句

C语言分支语句、循环语句详解!包括:if...else 语句 ;switch...case 语句 ;while语句;for 语句;do...while语句;goto语句。

LU_ZE_XX的博客 902

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

利用C语言的分支循环少量的函数知识写一个猜数字的小游戏

猜数字游戏

我要学编程的博客 1010

C语言-----分支与循环

C的分支与循环 分支语句     1.if语句 格式: if(表达式)  {     .....//表达式的逻辑值为真所执行的语句。 }    1.1 if...else语句 格式: if(表达式) {       ...//表达式的逻辑值为真所执行的语句。 }else {       ...//表达式的逻辑值为假所执行的语句。 }    1.2 if...else if..else语句 格式...

u013283956的博客 747

漫谈顺序、分支和循环

顺序(sequencing),分支/选择(alternation)和循环(iteration)这三种流程结构就足以表达所有程序的本质。三种流程结构如同万花筒中的彩纸,构成无穷无尽极富变化的程序。

yqj2065的博客 3235

C语言发展史和基础语法介绍(基础篇)

本章主要讲解了C语言的发展史和一些语法规则、分支语句和循环语句,博主是个小白本章如有错误欢迎大佬在评论区留言指出。C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写。

qq_45326605的博客 1771

【408计算机考研课程】-C语言认知

在计算机考研中,C语言的重要性不可小觑。作为一种基础且强大的编程语言,C语言不仅是许多高校计算机专业本科生必修的课程之一,也是研究生入学考试中的重点考察内容。掌握C语言能够帮助考生深入理解程序设计的基本概念和原理,比如数据类型、控制结构、函数、指针等,并能培养良好的编程习惯与问题解决能力。此外,C语言还是学习操作系统、编译原理等高级课程的基础,这些课程的知识点往往会在研究生入学考试中出现。因此,具备扎实的C语言功底不仅有助于提高考研成绩,也为将来从事计算机科学研究或工程实践打下坚实的基础。

Varin 2574

C语言学习笔记,学懂C语言,看这篇就够了!(上)

一份较为全面的C语言学习笔记(上)

weixin_69675605的博客 2615

C语言初级

人和人交流:汉语、英语、日语人和计算机交流的语言:C/C++、JAVA、python、GoC语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译处理低级存储器产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSLC,作为C语言最初的标准。

PPGG1212的博客 1200

C语言分支与循环(二)——switch语句

通过上一篇文章了解完条件分支语句中的if语句相关知识后,其实除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。接下来我将介绍switch语句,废话不多说,我们直接开始吧!

he_jia_min的博客 828

c语言循环次数判断,c语言 三大循环 四大跳转 和判断语句

三大循环for while 和 do{ }while;四大跳转 :无条件跳转语句 go to;跳出循环语句 break;继续跳出循环语句 continue;返回值语句 return判断语句 if,if else,if else if else if...elseifelse 组合if(0 == x)if(0 == y) error();else{//program code}else到底...

weixin_33561350的博客 2235

《switch-case 与 if-else 的选择:C 语言不同分支场景的效率对比》

在C语言中,

2501_93896185的博客 793
上一篇: C语言初阶:猜数字小游戏项目(不含数组,少量指针)
下一篇: NVIDIA 开源 AI 实战 | Cosmos 3 本地部署与世界基础模型初探
爱聊灵光的维C
博客等级 码龄120天 34粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值