当前位置: 首页 > news >正文

###C语言程序设计-----C语言学习(3)#

前言:感谢老铁的浏览,希望老铁可以一键三连加个关注,您的支持和鼓励是我前进的动力,后续我会分享更多学习编程的内容。

 

 

一.  主干知识的学习  

1.二分支结构和if-else语句

  二分支结构的形式主要有两种,如图所示,使用基本的if语句实现,即if-else语句和省略else的if语句。

下图为两种语句的流程图图解:

 

(1)用if-else语句实现,该语句的一般形式为:

                  if(表达式)

                          语句1;

                  else

                          语句2;

执行流程:先求解表达式,如果表达式的值为‘真’,就执行语句1;否则(即表达式的值为‘假’),就执行语句2。语句1和语句2总要执行一个,但是不会都执行。

(2)用省略else的if语句实现,该语句的一般形式为:

                 if(表达式)

                          语句1;

执行流程:先求解表达式,如果表达式的值为‘真’,就执行语句1;否则(即表达式的值为‘假’),就什么都不做。

注意:这里的语句1和语句2也称为内嵌语句,只允许是一条语句,若需要使用多条语句,应该用大括号把这些语句括起来组成复合语句。

2.多分支结构和else-if语句

else-if语句是最常用的实现多分支(多路选择)的方法,其一般形式为:

          if(表达式1)

                 语句1;

          else   if(表达式2)

                 语句2;

          ····

          else   if(表达式n-1)

                 语句n-1;

          else

                 语句n;

流程图如图所示:

 

执行流程:首先求解表达式1,如果表达式1的值为‘真’,则执行语句1,并结束整个if语句的执行,否则,求解表达式2······最后的else处理给出条件都不满足的情况,即表达式1,表达式2······表达式n-1的值都为‘假’时,执行语句n。

 

二.  具体实际案例语句的应用 

1.对于二分支结构:

(1)问题一:奇偶分家。输入一个正整数n,再输入n个非负整数,统计奇数和偶数各有多少个。

源程序:

#include <stdio.h>
int main()
{int count_odd, count_even, i, n, number;count_odd=0;        //count_odd记录奇数个数 count_even=0;      //count_even记录偶数个数 printf("Enter n:");scanf("%d", &n);printf("Enter %d numbers:", n);for (i=1; i<=n; i++){scanf("%d", &number);if (number%2!=0)      //判断奇数的条件 {count_odd++;     //如果满足则奇数加一 }else{count_even++;      //否则偶数加一 }}printf("odd:%d, Even:%d", count_odd, count_even);return 0;} 

 

简单分析:这里首先是通过for语句来实现多个非负整数的读取(关于for语句的用法可看前面的博客),区分奇偶通过二分支结构if-else语句即满足括号内条件则执行odd++,不满足则执行对于的even++,从而实现完整的程序。

(2)问题2:统计指定数量学生的平均成绩与不及格人数。输入一个非负整数n,再输入n个学生的成绩,计算平均成绩,并统计不及格成绩的学生人数。

源程序:

#include <stdio.h>
int main()
{int count, i, n;double score, total;printf("Enter n:");scanf("%d", &n);count=0;   //count用于记录不及格人数 total=0;for (i=1; i<=n; i++){printf("Enter score#%d:", i);  //学生成绩的输入     scanf("%lf", &score);total=total+score;  //计算总和 if (score<60)  //判断不及格条件 {count++;}}if (n!=0){printf("Average=%.2f\n", total/n);  //求平均成绩 }else {printf("input error");  //人数为零则显示输入错误 }printf("Number of failures=%d\n", count);   //显示不及格人数 return 0;} 

简单分析:同样这里通过for语句来实现指定学生的成绩输入,这里运用了两次if-else语句,第一次是为了区分成绩及格与不及格,从而统计不及格学生人数,第二次是为了避免输入指定学生人数为零,若为零,则显示输入有误。

2.对于多分支结构:

歌词的显示:

源程序:

#include <stdio.h>
int main()
{printf("请输入类型:");int type;scanf("%d", &type);if (type==5){printf("我的纸飞机呀"); }else if(type==2){printf("飞呀飞"); }else if(type==1){printf("飞到了芦荡边"); }else{printf("game over");}return 0;
}

简单分析:这里通过多分支语句即级联的else-if语句,从而实现对于不同的表达式下执行不同的语句,从而实现多分支的进行。

 

最后,感谢大家的浏览,期待老铁的一键三连加关注,编程路上有你不再孤单。

 

 

 

 

相关文章:

  • 函数式接口当参数使用
  • Day01-变量和数据类型课后练习(输出你最想说的一句话,定义所有基本数据类型的变量和字符串变量,用合适类型的变量存储个人信息并输出,定义圆周率PI,简答题)
  • Chrome for Developer 第一章(打开 Chrome 开发者工具)
  • flink-java使用介绍,flink,java,DataStream API,DataSet API,ETL,设置 jobname
  • [嵌入式系统-4]:龙芯1B 开发学习套件-1-开发版硬件介绍
  • 【微服务】springboot集成ELK使用详解
  • el-table数据更新了,但是展示并没有更新
  • 【幻兽帕鲁】开服务器,高性能高带宽(100mbps),免费!!!【学生党强推】
  • c# 对路径的访问被拒绝
  • Redis在生产环境中可能遇到的问题与解决方案(六)
  • 系统分析师-21年-论文试题
  • k8s 进阶实战笔记 | Scheduler 调度策略总结
  • Python处理日期和时间库之arrow使用详解
  • Qt|大小端数据转换
  • 第17节-高质量简历写作求职通关-投递反馈
  • @angular/forms 源码解析之双向绑定
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【node学习】协程
  • 0基础学习移动端适配
  • echarts的各种常用效果展示
  • egg(89)--egg之redis的发布和订阅
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JS基础之数据类型、对象、原型、原型链、继承
  • MYSQL 的 IF 函数
  • Netty源码解析1-Buffer
  • orm2 中文文档 3.1 模型属性
  • Promise面试题2实现异步串行执行
  • Shell编程
  • Sublime text 3 3103 注册码
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 程序员该如何有效的找工作?
  • 看域名解析域名安全对SEO的影响
  • 利用DataURL技术在网页上显示图片
  • 人脸识别最新开发经验demo
  • 一个完整Java Web项目背后的密码
  • 《天龙八部3D》Unity技术方案揭秘
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​第20课 在Android Native开发中加入新的C++类
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • (02)vite环境变量配置
  • (26)4.7 字符函数和字符串函数
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)计算机毕业设计ssm电影分享网站
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转)用.Net的File控件上传文件的解决方案
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .Net MVC + EF搭建学生管理系统
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • @JsonFormat与@DateTimeFormat注解的使用