C的三种基本程序结构-----详解以及例子

本文详细介绍了C语言中的三种基本程序结构:顺序结构、选择结构(if、switch)和循环结构(while、do_while、for)。通过实例展示了如何使用这些结构编写程序,包括条件判断、循环控制以及break和continue语句的应用。同时,文章还提供了习题以加深读者对概念的理解。
摘要由CSDN通过智能技术生成

目录

一.顺序结构

二.选择结构

1.if语句

2.switch语句:

三.循环结构

1.while语句:支持“当型”循环控制结构的语句。

2.do_while语句:“直到型”循环控制结构的语句。

3.for语句:比while语句更加灵活的循环控制语句。

4. break和continue语句 

1.break语句:

        2.continue语句:

四.习题


对于一个程序来说,它的内在逻辑是非常重要的。只要肯静下心来仔细推敲,找到它的关键逻辑。整个程序就已经完成了一大半,剩下的都是一些格式与规定。

我最感兴趣的就是第四部分,习题部分找凶手的例题。看见题目的时候整个傻眼了,这个也能用代码编出来并找到凶手吗?事实证明是可以的。

下面附上例题代码,结果及一些总结。希望对同时在学习C语言的你能有一些帮助,如果你是程序大神,那就不用细看我这篇文章啦~

一.顺序结构

 

例1:

财务人员给员工发工资时经常遇到这样一个问题,即根据每个人的工资额(以元作为单位)计算出各种面值的钞票的张数,且要求总张数最少。例如,某职工工资为3436元,发放方案为:100元34张,20元1张,10元1张,5元1张,1元1张。

程序:

结果:

总结:

(1)因为要求总张数最少,所以最好先拿最大数额的钱来支付工资,则顺序为100元→50元→20元→10元→5元→1元。

(2)每次只要能除以相关的数额得到的整数就是它的张数(m100=money/100),相除之后余下的部分留给下一级数额再相除      (money%=100;m50=mone/50;),一直除到5,剩下的都是1元能解决的部分(...m5=money/5;money%=5;printf("m1=%d",money);)。

(3)m1只出现在了printf打印里,且值该等于money%=5,所以不用对它进行定义。

(4)要处理的变量是金钱,所以数据类型是整型int,scanf与printf时加%d

  (5)30行最后一个斜杠表示承接下一行

 

例2:

从键盘输入一个大写字母,要求改用小写字母输出。

程序:

结果:

总结:

(1)涉及到的变量是大小写字母,所以数据类型是字符型char。scanf与printf时加%s

(2)判断输入的字符是否为大写,是则进入小写转换,不是则提醒输入错误。A~Z的ASCII值为65~90,不知道也没关系,用字符型表示计算机自己知晓则有第9行的表示。&&间的两个Ch的判断加了括号是为了方便阅读,不加也可以,因为>= ,<=(关系运算符)的优先级比&&(与)的高。

(3)大写转换为小写:第11行。A与a的ASCII值相差了32,所以也可以写成ch = ch + 32 ;本程序中的11行为通用写法,用于不清楚大写之间的ASCII差值的时候。

 

 

二.选择结构

 

1.if语句

 

例1:

输入两个实数a,b,如果a比b大,则将两个数数值交换,按代数值由小到大次序输出这两个数。

程序:

结果:

总结:

(1)输出时(16行)先输出a再输出b,且要求由小到大一次输出,所以如果输入时a的值比b大时就要进行交换(10~15行)。

(2)temp是用来交换a,b的中间载体,先将a中的内容给a,现在a是空的,紧接着就可以把b中的内容给a;现在b是空的,然后再把a放在temp中的内容给b(谁空给谁赋值),就实现了a与b的交换。注意顺序不要写错,不可写成:temp=a;b=temp;a=b。

 

例2:

输入三个实数a,b,c,按代数值由小到大次序输出这三个数。

程序:

结果:

总结:

(1)与上个例题差不多,只是判断的数增加到了三个,再把不符合a<b<c的情况列出来进行值的交换即可。

(2)29行中%5.2f意思为:以宽度为5,显示两位小数的形式输出。

(3)与上一个例题一样都是涉及到实数,一个用的int,一个用了float。其实都可以,因为实数的定义如下:

 

有理数中整数部分是int型,分数(小数)部分是float型。

 

例3:

有一函数如下,编一程序,输入一个x值,输出y值。
                                        -1              (x<0)
                                y=     0               (x=0)
                                         1               (x>0)

程序:

结果:

总结:

(1)易错点:14行else if 里面不要写成x = 0。平时书写时是x=0,可在计算机中 =赋值运算符,==关系运算符,与<,>一样。

 

例4:

写程序,判某一年是否闰年。
输入:年(year)
计算:判是否闰年
输出:闰年或非闰年(leap)
闰年条件:
能被4整除,但不能被100整除。
能被4整除,又能被400整除。

程序:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值