C语言程序设计-笔记2-分支结构
C语言程序设计-笔记2-分支结构
例3-1 简单的猜数游戏。输入你所猜的整数(假定1-100),与计算机产生的被猜数比较,若相等,显示猜中;若不等,显示与被猜数的大小关系。
/*简单的猜数游戏*/
#include<stdio.h>
int main(void)
{
int mynumber=38; //计算机指定被猜的数
int yournumber;
printf("Input your number:");
scanf("%d",&yournumber);
if(yournumber==mynumber)
{
printf("Good Guess!\n");
}
else if(yournumber>mynumber)
{
printf("Too big!\n");
}
else
{
printf("Too small!\n");
}
return 0;
}
例3-2 奇偶分家。输入一个正整数n,再输入n个非负整数,统计奇数和偶数各有多少个?
#include<stdio.h>
int main(void)
{
int count_odd=0,count_even=0;
int i,n,number;
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_even++;
}
else
{
count_odd++;
}
}
printf("odd:%d,even:%d\n",count_odd,count_even);
return 0;
}
例3-3 统计指定数量学生的平均成绩与不及格人数。输入一个非负整数n,再输入n个学生的成绩,计算平均分,并统计不及格成绩的学生人数。
#include<stdio.h>
int main(void)
{
int count,i,n;
double score,total;
printf("Enter n:");
scanf("%d",&n);
total=0;
count=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("Average=%.2f\n",0.0);
}
printf("Number of failures=%d\n",count);
return 0;
}
例3-4 分段计算居民水费。继续讨论例2-4中提出的分段计算水费的问题,虽然实际生活中不会出现月用水量x小于0的情况,但程序运行时如果不慎输入一个负数,水费计算将会出错。为了完善分段计算水费的程序,现将居民应交水费y(元)与月用水量x(吨)的函数关系式修正如下,并编程实现。
y=f(x)=
#include<stdio.h>
int main(void)
{
double x,y; //x--shuiliang y--shuifei
printf("Enter x:");
scanf("%lf",&x);
if(x<0)
{
y=0;
}
else if(x<=15)
{
y=4*x/3;
}
else
{
y=2.5*x-10.5;
}
printf("f(%.2f)=%.2f\n",x,y);
return 0;
}
例3-5 求解简单的四则运算表达式。输入一个形如“操作数 运算符 操作数“的四则运算表达式,输出运算结果,要求对除数为0的情况作特别处理。
/*求解简单的四则运算表达式*/
#include<stdio.h>
int main(void)
{
double value1,value2;
char op;
printf("Type in an expression:");
scanf("%lf%c%lf",&value1,&op,&value2);
if(op=='+')
{
printf("%.2f\n",value1+value2);
}
else if(op=='-')
{
printf("%.2f\n",value1-value2);
}
else if(op=='*')
{
printf("%.2f\n",value1*value2);
}
else if(op=='/')
{
if(value2!=0)
{
printf("%.2f\n",value1/value2);
}
else
{
printf("Divisor can not be 0!\n");
}
}
else
{
printf("Unknown operator!\n");
}
return 0;
}
例3-char 输入8个字符,然后将这些字符输出,输出时在字符之间加一个减号,首尾没有。
#include<stdio.h>
int main(void)
{
char ch;
int first=1,k;
printf("Enter 8 characters:");
for(k=1;k<=8;k++)
{
ch=getchar();
if(first==1)
{
putchar(ch);
first=0;
}
else
{
putchar('-');
putchar(ch);
}
}
return 0;
}
例3-6 写出满足下列条件的C语言表达式。
1) Ch是空格或者回车。
2) year是闰年,即year能被4整除但不能被100整除,或year能被400整除。
解答:
1) ch==’ ‘ || ch==’\n’;
2) year%4==0 && year%100!=0 || year%400==0;
例3-7 统计英文字母和数字字符。输入一个正整数n,再输入n个字符,统计其中英文字母、数字字符和其他字符的个数。
#include<stdio.h>
int main(void)
{
int digit,letter,other,i,n;
char ch;
digit=letter=other=0;
printf("Enter n:");
scanf("%d",&n);
getchar();
printf("Enter %d characters:",n);
for(i=1;i<=n;i++)
{
ch=getchar();
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
{
letter++;
}
else if(ch>='0'&&ch<='9')
{
digit++;
}
else
{
other++;
}
}
printf("letter=%d,digit=%d,other=%d\n",letter,digit,other);
return 0;
}
例3-8 查询自动售货机中商品的价格。假设自动售货机出售4种商品:薯片(crisps)、爆米花(popcorn)、巧克力(chocolate)和可乐(cola),售价分别是每份3.0、2.5、4.0和3.5元。在屏幕上显示以下菜单(编号和选项),用户可以连续查询商品的价格,当查询次数超过5次时,自动退出查询;不到5次时,用户可以选择退出。当用户输入编号1-4,显示相应商品的价格(保留1位小数);输入0,退出查询;输入其他编号,显示价格为0。
[1] Select crisps
[2] Select popcorn
[3] Select chocolate
[4] Select cola
[5] Exit
#include<stdio.h>
int main(void)
{
int choice,i;
double price;
printf("[1] Select crisps\n");
printf("[2] Select popcorn\n");
printf("[3] Select chocolate\n");
printf("[4] Select cola\n");
printf("[0] exit\n");
for(i=1;i<=5;i++)
{
printf("Enter choice:");
scanf("%d",&choice);
if(choice==0)
{
break;
}
switch(choice)
{
case 1:price=3.0;break;
case 2:price=2.5;break;
case 3:price=4.0;break;
case 4:price=3.5;break;
default:price=0.0;break;
}
printf("price=%0.1f\n",price);
}
printf("Thanks\n");
return 0;
}
例3-9 两个数的简单计算器。编写一个简单计算器程序,可根据输入的运算符,对两个整数进行加、减、乘、除和求余运算,请对除数为0的情况作特别处理。要求使用switch语句编写。
#include<stdio.h>
int main(void)
{
int value1,value2;
char op;
printf("Type in an expression:");
scanf("%d%c%d",&value1,&op,&value2);
switch(op)
{
case '+':
printf("=%d\n",value1+value2);
break;
case '-':
printf("=%d\n",value1-value2);
break;
case '*':
printf("=%d\n",value1*value2);
break;
case '/':
if(value2!=0)
{
printf("=%d\n",value1/value2);
}
else
{
printf("Divisor can not be 0!\n");
}
break;
case '%':
if(value2!=0)
{
printf("=%d\n",value1%value2);
}
else
{
printf("Divisor can not be 0!\n");
}
break;
default:
printf("Unknown operator\n");
break;
}
return 0;
}
例3-10 输入一个正整数n,再输入n个字符,分别统计出其中空格或回车、数字字符和其他字符的个数。要求使用switch语句编写。
#include<stdio.h>
int main(void)
{
int blank,digit,i,n,other;
char ch;
blank=digit=other=0;
printf("Enter n:");
scanf("%d",&n);
getchar();
printf("Enter %d characters:",n);
for(i=1;i<=n;i++)
{
ch=getchar();
switch(ch)
{
case ' ':
case '\n':
blank++;
break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
digit++;
break;
default:
other++;
break;
}
}
printf("blank=%d,digit=%d,other=%d\n",blank,digit,other);
return 0;
}
例3-11 改写下列if语句,使else和第一个if配对。
if(x<2)
if(x<1) y=x+1;
else y=x+2;
解:
1) 使用大括号
if(x<2){
if(x<1) y=x+1;}
else y=x+2;
2) 加else
if(x<2)
if(x<1) y=x+1;
else;
else y=x+2;
参考资料
C语言程序设计/何钦铭,颜晖主编.---4版.---北京:高等教育出版社,2020.9
C语言程序设计-笔记2-分支结构的更多相关文章
- Go语言学习笔记十: 结构体
Go语言学习笔记十: 结构体 Go语言的结构体语法和C语言类似.而结构体这个概念就类似高级语言Java中的类. 结构体定义 结构体有两个关键字type和struct,中间夹着一个结构体名称.大括号里面 ...
- 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计
<C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...
- 160809209_李梦鑫_C语言程序设计实验2+选择结构程序设计_进阶
<C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C05 机 ...
- 【C语言学习】-02 分支结构
本文目录: 一.BOOL布尔类型 二.关系运算符 三.逻辑运算符 四.if语句 五.枚举类型 六.switch语句 一.BOOL布尔类型 BOOL数据类型,是一种表示非真即假的数据类型,布尔类型的变量 ...
- C语言第二次作业---分支结构
一.PTA实验作业 题目1:计算分段函数[2] 1.实验代码 double x,y; scanf("%lf",&x); if(x>=0){ y=sqrt(x); } ...
- Go语言学习笔记(3)——分支、循环结构
1 条件语句: if, else if, else 特殊用法:判断num是奇是偶:其中局部变量num只能在该if...else语句中使用! if num := 10; num % 2 == 0 { ...
- C语言第二周作业----分支结构
一.PTA实验作业 题目1.7-1计算分段函数 本题目要求计算下列分段函数f(x)的值: 注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂. 1.实验代码 int ma ...
- JAVA语言程序设计-笔记摘录
JAVA 程序语言设计(基础篇) 笔记摘录 为避免输入错误, 不要在nextByte().nextShort().nextInt()等等后面使用nextLine() nextXXXXX()都称为令牌读 ...
- 计算机二级-C语言-程序设计题-190112记录-结构体的遍历和结构体的数据的交换处理,文件的操作。
//程序设计题:学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回 ...
- 160809212田京诚C语言程序设计实验2 选择结构程序设计_进阶
实验2-6 猜数字游戏 实验要求: 编写一个C程序实现一个[1-100]以内的猜数字游戏. (1) 系统随机产生一个[1-100]之间的随机数. (2) 输入任意一个数字.数字 ...
随机推荐
- Win10 如何在桌面显示我的电脑
Win10桌面右键鼠标,然后在弹出来的选项中选择个性化. 选择了个性化后会弹出设置界面,在设置中选择[主题] 找到[桌面图标设置] 点击[桌面图标设置],会弹出一个对话框,该对话框有可以设置显示的图标 ...
- KingbaseES 原生XML系列三--XML数据查询函数
KingbaseES 原生XML系列三--XML数据查询函数(EXTRACT,EXTRACTVALUE,EXISTSNODE,XPATH,XPATH_EXISTS,XMLEXISTS) XML的简单使 ...
- #莫队,bitset#洛谷 3674 小清新人渣的本愿
题目 分析 只要做到\(O(n\sqrt{n})\)的时间复杂度就可以了 考虑莫队,首先乘号就是枚举\(x\)的约数\(d\), 判断\(d\)和\(\frac{x}{d}\)是否同时出现, 再考虑差 ...
- OpenHarmony社区运营报告(2022年12月)
本月快讯 • 本月新增22款产品通过兼容性测评,累计220款产品通过兼容性测评. • 12月28日,OpenAtom OpenHarmony(以下简称"OpenHarmony")凭 ...
- SQL PRIMARY KEY 约束- 唯一标识表中记录的关键约束
SQL NOT NULL 约束 SQL NOT NULL 约束用于强制确保列不接受 NULL 值.这意味着该字段始终包含一个值,而不允许插入新记录或更新记录时不提供此字段的值. 在 CREATE TA ...
- WPF/MVVM模式入门教程(一):简介与规范
引用:https://www.cnblogs.com/flh1/p/12421652.html 什么是MVVM模式? MVVM的全称是--Model.View.ViewModel,翻译过来就是:模型. ...
- 【FAQ】获取Push Token失败,如何进行排查?
一. 获取Push Token的方式 获取Push Token有两种方式:一种是调用getToken方法向Push服务端请求Token,当getToken方法返回为空时,Token可通过onNewTo ...
- Qt 实现涂鸦板一:简易涂鸦板
新建一个Qt项目,在 .h 文件中写入 #pragma once #include <QtWidgets/QWidget> #include "ui_xuexi.h" ...
- .NET服务发现(Microsoft.Extensions.ServiceDiscovery)集成Consul
随着Aspire发布preview5的发布,Microsoft.Extensions.ServiceDiscovery随之更新, 服务注册发现这个属于老掉牙的话题解决什么问题就不赘述了,这里主要讲讲M ...
- CentOS 8开启防火墙端口关闭防火墙端口端口对外放行
1:查看firewall防火墙状态 firewall-cmd --state 或者 systemctl status firewalld 2:打开防火墙 systemctl start firewal ...