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-分支结构的更多相关文章

  1. Go语言学习笔记十: 结构体

    Go语言学习笔记十: 结构体 Go语言的结构体语法和C语言类似.而结构体这个概念就类似高级语言Java中的类. 结构体定义 结构体有两个关键字type和struct,中间夹着一个结构体名称.大括号里面 ...

  2. 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计

    <C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...

  3. 160809209_李梦鑫_C语言程序设计实验2+选择结构程序设计_进阶

    <C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C05 机 ...

  4. 【C语言学习】-02 分支结构

    本文目录: 一.BOOL布尔类型 二.关系运算符 三.逻辑运算符 四.if语句 五.枚举类型 六.switch语句 一.BOOL布尔类型 BOOL数据类型,是一种表示非真即假的数据类型,布尔类型的变量 ...

  5. C语言第二次作业---分支结构

    一.PTA实验作业 题目1:计算分段函数[2] 1.实验代码 double x,y; scanf("%lf",&x); if(x>=0){ y=sqrt(x); } ...

  6. Go语言学习笔记(3)——分支、循环结构

    1 条件语句: if, else if, else   特殊用法:判断num是奇是偶:其中局部变量num只能在该if...else语句中使用! if num := 10; num % 2 == 0 { ...

  7. C语言第二周作业----分支结构

    一.PTA实验作业 题目1.7-1计算分段函数 本题目要求计算下列分段函数f(x)的值: 注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂. 1.实验代码 int ma ...

  8. JAVA语言程序设计-笔记摘录

    JAVA 程序语言设计(基础篇) 笔记摘录 为避免输入错误, 不要在nextByte().nextShort().nextInt()等等后面使用nextLine() nextXXXXX()都称为令牌读 ...

  9. 计算机二级-C语言-程序设计题-190112记录-结构体的遍历和结构体的数据的交换处理,文件的操作。

    //程序设计题:学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回 ...

  10. 160809212田京诚C语言程序设计实验2 选择结构程序设计_进阶

    实验2-6 猜数字游戏 实验要求: 编写一个C程序实现一个[1-100]以内的猜数字游戏. (1)       系统随机产生一个[1-100]之间的随机数. (2)       输入任意一个数字.数字 ...

随机推荐

  1. drools执行String规则或执行某个规则文件

    1.背景 此处主要记录一下2个小的知识点,防止以后忘记. 1.如何在drools中执行某个drl文件. 2.如果我们的规则是一个String类型的字符串,那么该如何执行. 2.实现 2.1 执行指定的 ...

  2. UE4接口

    官方链接 目的 不同Actor对象具有同一个功能,比如角色按F键可以实现开门,开车,与NPC沟通等操作.其本质就是让所有的Actor对象除了继承UObject以外,再继承这个接口类. 接口的声明 宏的 ...

  3. 01 jQuery初使用

    01 jQuery初使用 jQuery是一个曾经火遍大江南北的一个Javascript的第三方库. jQuery的理念: write less do more. 其含义就是让前端程序员从繁琐的js代码 ...

  4. #并查集,线性筛#nssl 1470 X

    分析 显然答案就是\(2^{连通块个数}-2\), 将每个数的质数所在的集合合并, 最后判断连通块个数即可(线性筛少了个等号改了半天QWQ) 代码 #include <cstdio> #i ...

  5. #扩展域并查集,线段树分治#CF576E Painting Edges

    题目链接 题目翻译 给定一张 \(n\) 个点 \(m\) 条边的无向图. 一共有 \(k\) 种颜色,一开始,每条边都没有颜色. 定义合法状态为仅保留染成 \(k\) 种颜色中的任何一种颜色的边,图 ...

  6. #贪心,树#C 平衡的树

    分析 处理出子树内剩余删减以及最大的剩余\(a\)和, 如果删了还是超过\(b\)输出无解 代码 #include <cstdio> #include <cctype> #de ...

  7. 2022 OpenHarmony年度运营报告

  8. OpenHarmony开源开发者成长计划 | 知识赋能第六期预告—从零上手OpenHarmony智能家居项目

    OpenAtom OpenHarmony(以下简称"OpenHarmony")开源开发者成长计划项目自 2021 年 10 月 24 日上线以来,在开发者中引发高度关注. 成长计划 ...

  9. Java List集合去重、过滤、分组、获取数据、求最值、合并、排序、跳数据和遍历

    前言 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i. 准备工作:现有一个User类.Student 类和Ticket类,加入相关依赖 @Data public class User { / ...

  10. HDC2021技术分论坛:吐司盒子?芝士码?HarmonyOS音视频测试来啦

    作者:lifusheng,用户体验技术专家 当下,音视频无处不在,很多设备和应用都涉及音视频.因而,对于HarmonyOS开发者们来说,如何对鸿蒙生态产品进行音视频测试是一个非常重要的问题. 华为Ha ...