按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源。原课程链接如下:

https://www.icourse163.org/course/ZJU-9001

由于是大三抽空回头整理的,所以可能前五章会记的内容比较简略。此外,作为选学内容的A0:ACLLib的基本图形函数和链表两章也没有做。西电的考试是机试,理论上学到结构体就能够应付考试了,但为了以后的学习考虑建议全学。

其他各章节的链接如下:

C语言程序设计笔记(浙大翁恺版) 第一周:程序设计与C语言

C语言程序设计笔记(浙大翁恺版) 第二周:计算

C语言程序设计笔记(浙大翁恺版) 第三周:判断

C语言程序设计笔记(浙大翁恺版) 第四周:循环

C语言程序设计笔记(浙大翁恺版) 第五周:循环控制

C语言程序设计笔记(浙大翁恺版) 第六周:数据类型

C语言程序设计笔记(浙大翁恺版) 第七章:函数

C语言程序设计笔记(浙大翁恺版) 第八周:数组

C语言程序设计笔记(浙大翁恺版) 第九周:指针

C语言程序设计笔记(浙大翁恺版) 第十周:字符串

C语言程序设计笔记(浙大翁恺版) 第十一周:结构类型

C语言程序设计笔记(浙大翁恺版) 第十二周:程序结构

C语言程序设计笔记(浙大翁恺版) 第十三周:文件

其他各科笔记汇总

循环控制

第三种循环

for循环

这是最古老的循环,确实样子看上去有点古怪

for循环

for循环像一个计数循环:设定一个计数器,初始化它,然后在计数器到达某值之前,重复执行循环体,而每执行一轮循环,计数器值以一定步进进行调整,比如加1或者减1

for ( 初始条件; 条件; 每轮的动作 ) {}

for中的每一个表达式都是可以省略的,for( ; 条件; ) == while( 条件 )

for = 对于

for ( count=10; count>0; count-- )就读成:”对于一开始的count=10,当count>0时,重复做循环体,每一轮循环体在做完循环体内语句后,使得count--

阶乘

n!=1×2×3×4×..×nn!=1\times 2 \times 3\times 4\times .. \times nn!=1×2×3×4×..×n

写一个程序,让用户输入nnn,然后计算输出n!n!n!

int n;scanf("%d", &n);
int fact = 1;int i = 1;
for ( i=1; i<=n; i++ ) {fact *= i;
}printf("%d!=%d\n", n, fact);

循环控制变量i只在循环里被使用了,在循环外面它没有任何用处。因此,我们可以把变量i的定义放到for语句里面去写成for ( int i=1; i<=n; i++ ) { ... }

但是即使宣称支持C99的编译器,也可能需要加特殊的选项才能够使用这种写法

循环的计算和选择

如何计算循环的次数,如何选择不同的循环

循环次数

for ( i=0; i<n; i+= )则循环的次数是n,而循环结束后,i的值是n。循环的控制变量i,是选择从0开始还是从1开始,是判断i<n还是判断i<=n,对循环的次数,循环结束后变量的值都有影响

Tips for loops

如果有固定次数,用for。如果必须执行一次,用do_while。其他情况用while

循环控制

循环控制

如何用breakcontinue来控制循环

break vs continue

break:跳出循环

continue:跳过循环这一轮剩下的语句进入下一轮

素数

只能被1和自己整除的数,不包括1

#include <stdio.h>int main()
{int x;scanf("%d", &x);int i;int isPrime = 1;    //  x是素数for ( i=2; i<x; i++ ) {if ( x % i == 0 ) {isPrime = 0;break;}}if ( isPrime == 1 ) {printf("是素数\n");} else {printf("不是素数\n");}return 0;
}

嵌套的循环

在循环里面还是循环

嵌套的循环

循环里面还是循环

100以内的素数

如何写程序输出100以内的素数?

#include <stdio.h>int main()
{int x;for ( x=1; x<=100; x++ ) {int i;int isPrime = 1; //  x是素数for ( i=2; i<x; i++ ) {if ( x % i == 0 ) {isPrime = 0;break;}}if ( isPrime == 1 ) {printf("%d ", x);} }printf("\n");return 0;
}

前50个素数

如何写程序输出前50个素数?

#include <stdio.h>int main()
{int x;int cnt = 0;x = 1;while ( cnt <50 ) {int i;int isPrime = 1;    //  x是素数for ( i=2; i<x; i++ ) {if ( x % i == 0 ) {isPrime = 0;break;}}if ( isPrime == 1 ) {cnt ++;printf("%d\t", x);if ( cnt %5 == 0 ) {printf("\n");}} x++;}return 0;
}

从嵌套的循环中跳出

break只能跳出其所在的循环

breakcontinue只能对它所在的那层循环做

当有多重循环,希望从最内层跳到最外层时可以用break接力或者goto

凑硬币

如何用1角、2角和5角的硬币凑出10元以下的金额呢?

#include <stdio.h>int main()
{int x;int one, two, five;int exit = 0;scanf("%d", &x);for ( one = 1; one < x*10; one++ ) {for ( two = 1; two < x*10/2; two++ ) {for ( five = 1; five < x*10/5; five++ ) {if ( one + two*2 + five*5 == x*10 ) {printf("可以用%d个1角加%d个2角加%d个5角得到%d元\n", one, two, five, x);exit = 1;break;}}if ( exit == 1 ) break;}if ( exit == 1 ) break;}return 0;
}
#include <stdio.h>int main()
{int x;int one, two, five;scanf("%d", &x);for ( one = 1; one < x*10; one++ ) {for ( two = 1; two < x*10/2; two++ ) {for ( five = 1; five < x*10/5; five++ ) {if ( one + two*2 + five*5 == x*10 ) {printf("可以用%d个1角加%d个2角加%d个5角得到%d元\n", one, two, five, x);goto out;}}}}
out:    return 0;
}

循环应用

  • 前n项求和
  • 整数分解
  • 求最大公约数

编程练习解析

  • 4-0:给定条件的整数集
  • 4-1:水仙花数
  • 4-2:九九乘法表
  • 4-3:统计素数求和
  • 4-4:猜数游戏
  • 5-0:n项求和
  • 5-1~5-3

C语言程序设计笔记(浙大翁恺版) 第五周:循环控制相关推荐

  1. C语言程序设计笔记(浙大翁恺版) 第九周:指针

    按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源.原课程链接如下: https://www.icourse163.org/course/ZJU-9001 由于是大三抽空回头整理的, ...

  2. C语言程序设计笔记(浙大翁恺版) 第二周:计算

    按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源.原课程链接如下: https://www.icourse163.org/course/ZJU-9001 由于是大三抽空回头整理的, ...

  3. 【C语言程序设计进阶-浙大翁恺】C语言笔记 文件

    [C语言程序设计进阶-浙大翁恺]C语言笔记 文件 文件 格式化输入输出 文件输入输出 二进制文件 位运算 按位运算 移位运算 位运算例子 位段 文件 格式化输入输出 %-nd:数字左对齐,且输出要占n ...

  4. C语言学习笔记(浙大翁恺版)第一周

    1.3.1 第一个C语言程序 程序主体框架: #include<stdio.h> int main() {//从这里开始编辑程序比如说随便写一个:printf("Hello Wo ...

  5. C语言程序设计笔记(浙大翁恺版) 第三周:判断

    按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源.原课程链接如下: https://www.icourse163.org/course/ZJU-9001 由于是大三抽空回头整理的, ...

  6. C语言程序设计笔记(浙大翁恺版) 第八周:数组

    按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源.原课程链接如下: https://www.icourse163.org/course/ZJU-9001 由于是大三抽空回头整理的, ...

  7. C语言程序设计笔记(浙大翁恺版) 第七章:函数

    按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源.原课程链接如下: https://www.icourse163.org/course/ZJU-9001 由于是大三抽空回头整理的, ...

  8. C语言程序设计笔记(浙大翁恺版) 第十周:字符串

    按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源.原课程链接如下: https://www.icourse163.org/course/ZJU-9001 由于是大三抽空回头整理的, ...

  9. MOOC程序设计入门——C语言(翁恺)第五周编程作业“念整数”

    MOOC程序设计入门--C语言(翁恺)第五周编程作业"念整数" ****念整数 题目内容: 你的程序要读入一个整数,范围是[-100000,100000].然后,用汉语拼音将这个整 ...

最新文章

  1. iconfont svg图标不能更改颜色的解决方法
  2. Web框架之Django_03 路由层了解(路有层 无名分组、有名分组、反向解析、路由分发 视图层 JsonResponse,FBV、CBV、文件上传)
  3. python 字符串和时间格式(datetime)相互转换-
  4. [xsy3343]程序锁
  5. 位运算java_Java中的位运算
  6. mtk android 5.1 logo,Android ROM DIY之MTK平台手机通用移植
  7. excel图片变成代码_有趣的EXCELvba作图
  8. Lesson 10.1Lesson 10.2 开篇:超参数优化与枚举网格搜索的理论极限随机网格搜索
  9. Excel的上传下载
  10. 计算机无法安装dx11,Windows10系统DX11正确的安装路径是什么?
  11. 泛微E9 MVC开发
  12. 电感式传感器的原理大白话
  13. 打印程序在计算机上的应用程序,无法打印显示打印机程序服务没有运行解决办法...
  14. linux 2t gpt 分区,linux大于2T的磁盘使用GPT分区方式
  15. VLP-16第一课: Velodyne的工作原理和驱动安装
  16. 解决error while accessing a target resource. resource is perhaps not available or a wrong access was
  17. RPG Maker mv框架代码解析之Sprite_Button
  18. 函数最值题目及答案_二次函数的最值问题举例(附练习答案)
  19. servlet修改用户头像_修改头像总结
  20. jvm学习笔记-chapter6 类文件结构

热门文章

  1. 面向服务框架WebServiceBPM系统
  2. 用Ruby on Rails实现适应各种平台的在线Office文档预览
  3. 自制操作系统1:先动手操作
  4. 如何在JavaScript中对对象数组进行排序
  5. 弘辽科技:淘宝直通车智能推广报告如何解?
  6. archlinux 解决蓝牙无法连接问题
  7. 《摄氏华氏温度转换》
  8. 在键盘上输入数n,编程计算sum=1!+2!+··· + n!的结果
  9. 互联网出海现在还是风口么?
  10. 【专访】润和软件刘洋:同心聚力开拓基于OpenHarmony的国产化科技创新之路