当前位置: 首页 > 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节-高质量简历写作求职通关-投递反馈
  • 【刷算法】求1+2+3+...+n
  • Angular 响应式表单 基础例子
  • Apache的80端口被占用以及访问时报错403
  • create-react-app项目添加less配置
  • docker python 配置
  • dva中组件的懒加载
  • JavaScript实现分页效果
  • jquery ajax学习笔记
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • uva 10370 Above Average
  • vue2.0项目引入element-ui
  • WePY 在小程序性能调优上做出的探究
  • 阿里云应用高可用服务公测发布
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 前端技术周刊 2019-02-11 Serverless
  • 实习面试笔记
  • 通过git安装npm私有模块
  • 微信小程序填坑清单
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #if #elif #endif
  • #宝哥教你#查看jquery绑定的事件函数
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (3)(3.5) 遥测无线电区域条例
  • (C++20) consteval立即函数
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (办公)springboot配置aop处理请求.
  • (补)B+树一些思想
  • (力扣)1314.矩阵区域和
  • (顺序)容器的好伴侣 --- 容器适配器
  • (四)Linux Shell编程——输入输出重定向
  • (转)程序员疫苗:代码注入
  • .apk 成为历史!
  • .CSS-hover 的解释
  • .Net 4.0并行库实用性演练
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET gRPC 和RESTful简单对比