首页 / C语言 / C语言学习笔记(5)—— 语句(2)
C语言学习笔记(5)—— 语句(2)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C语言学习笔记(5)—— 语句(2),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1777字,纯文字阅读大概需要3分钟。
内容图文
![C语言学习笔记(5)—— 语句(2)](/upload/InfoBanner/zyjiaocheng/1145/1e9024e1093742a6ad76adf3cbbe7c5f.jpg)
在介绍过顺序结构和选择结构以后,我们能通过c语言做的事依旧很少,比如换硬币问题。将一元的人民币换成一分,两分,五分的硬币共50枚。如何解决这样的问题呢?我们可以把它化解成一个求解线性方程组的问题。
可以设需要一分的硬币x枚,两分的硬币y枚,五分的硬币z枚。于是,我们可以得到一个方程组,像这样:x+y+z = 50,0.01x+0.02y+0.05z = 1。我们知道,计算机在计算浮点数的时候可能会出现精度问题。所以,我们
把方程组改写成x+y+z = 50,x+2y+5z = 100。
那么问题来了,如何用C语言来求解这样的一个方程组呢??我们知道x,y,z的取值范围,x不能超过100,y不能超过50,z不能超过20,并且它们都是自然数,即它们大于0且它们都是整数。我们可以在x,y,z的取值
范围里逐个枚举。当x+y+z = 50,x+2y+5z = 100时,输出x,y,z的值,这样,我们就得到了方程组的一个解。我们把这一过程用代码来实现。
1 #include <stdio.h> 2 3int main(){ 4 printf("符合条件的x,y,z的取值如下:\n"); 5for (int x = 0;x < 100;x++) { 6for (int y = 0;y < 50;y++) { 7for (int z = 0;z < 20;z++) { 8if(x+y+z == 50 && 9 x+2*y+5*z == 100){ 10 printf("\n一分硬币%d枚,两分硬币%d枚,五分硬币%d枚\n",x,y,z); 11 } 12 } 13 } 14 } 15return0; 16 }
代码中,形如这样的语句被称为for语句,它后面的()内部的内容可以抽象为(表达式1;表达式2;表达式3)。其中表达式1为循环开始前要做的事情,
表达式2为循环的终止条件,表达式3为改变循环条件变量的语句。整个循环可以这样用算法框图表示。
在我们的代码内,出现的是一个三重循环,对于三重循环,我们可以这样理解,将第一重循环的循环体换成一个循环,在将第二重循环的循环体换成一个循环。嵌套循环可以这样用算法框图表示。
这里,我们用算法框图表示了一个二重循环。如果想要把它改为一个三重循环。只需要将内循环的循环体改成一个循环,这样就是一个三重循环了。
了解了for循环以后,循环语句有什么用呢??我们知道,计算机做的事情,一般都是可重复的,可重复的过程,一般都可以让计算机代劳。解方程的过程可以通过枚举,从而得到方程的解。所以,循环在计算机科学里的地位是不可忽视的,大部分的算法都基于循环,所以
如何使用循环解决问题。是一件值得多多研究的事情。现在。我们用循环来解决打印乘法表的问题,要求是:在控制台打印出九九乘法表。像这样:
这样一个操作对应的代码段可以是这样:
#include <stdio.h> int main(){ for (int i = 1;i <= 9;i++) { for (int j = 1;j<= i;j++) { printf("%d x %d = %d\t",j,i,i*j); } printf("\n"); } printf("--------------------------------------我是分割线------------------------------------\n"); for (int i = 9;i >= 1;i--) { for (int j = 1;j<= i;j++) { printf("%d x %d = %d\t",j,i,i*j); } printf("\n"); } return0; }
乘法表的打印是逐行打印的,一行一行的打印。每一行都需要打印,所以,循环应该是一个二重循环,外循环负责逐行打印。内循环负责在每一行进行打印。
循环语句的功能是非常强大的,大部分程序都含有循环。使用,笔者也只能挑一部分常见的循环应用来描述循环。
原文:https://www.cnblogs.com/zhuxingtian/p/9900516.html
内容总结
以上是互联网集市为您收集整理的C语言学习笔记(5)—— 语句(2)全部内容,希望文章能够帮你解决C语言学习笔记(5)—— 语句(2)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。