C Primer Plus第七章:控制
1.用遍历找约数时,只用找到平方根,判断条件用检测变量的平方比较快速。
2.找素数,可以定一个变量为0,写一个if语句,令其等于1,若最后,没有变,则说明没有进入过if,这是标记!
3.逻辑运算符:与&&,或||,非!;经常用于写复杂的循环或控制条件,注意仔细阅读;非!的优先级与++一样,&&高于||,但两者都低于关系运算符。C语言对&&左边判定为假后,就不会再检测右边是否正确,所以不要在右边写除了判断以外的其他操作。
4.条件运算符?:: x=(y<0)?-y:y意思是:若y<o,x=-y;若y>0,x=y.可以用来在打印时确定打啊,或者b。
5.continue:跳过本次迭代,进入下一次循环,对while直接测试下一次条件,对for会进行递增后再检测条件。
6.break:跳出包含其的最近一层循环,对while和for的作用一样
7.switch(){ //此处的括号内只能是int类型,常量或整型常量表达式。
case : ; //属于多重标签,写数字或者 ' 字母 ';每层标签后记得break;。
default : ;}
8.
while(getchar() ! = ' \n ') //跳过剩余字母或其他,类似可以跳过空格;
continue;
9.switch和if else的选择:switch不接受浮点型,不接受大范围,但运行速度快。
10.少用:go to语句:goto 变量名;……;变量名: ;会显得代码很混乱,仅仅用于跳出全部循环。
11.补充一下几个<ctype.h>包含的函数,感觉很好用。字母:isalpha();数字:isdigit();空格:isblank();空白:isspace();小写:islower();大写:isupper();标点:ispunct();返回小写值:tolower();返回大写值:toupper()。
复习题10(有点有趣记录一下)
#include <stdio.h>
int main(void) {
char ch;
while ((ch = getchar()) != '#') {
while (ch != '\n') {
printf("Step 1\n");
while (ch !='c'&&ch !='b'&&ch !='h') {
printf("Step 2\n");
break;
}
if (ch == 'h')
printf("Step 3\n");
break;
}
if (ch == 'b')
break;
}
printf("Done\n");
return 0;
}
编程练习7.9
#include <stdio.h>
int main(void) {
int a, def, num;
while((scanf("%d",&a)==1)&&a>0) {
if(a==2){
printf("2 ");
break;
}
else if(a<2)
break;
else {
printf("2 3 ");
for(num=4; a>=4&&num<=a; num++) {
for(def=2; def*def<=num; def++) {
if(num%def==0)
break;
}
if(def*def>num)
printf("%d ",num);
}
}
if(num>a)
break;
}
return 0;
}
if else 部分可以换成switch,但也不是很简化。不调用函数的情况我只能这么写了。
7.12
#include <stdio.h>
#define APRICE 2.05
#define BPRICE 1.15
#define CPRICE 1.09
int main(void) {
char ch;
float acont,bcont,cont,ccont,scont,sum,ssum,sdel;
acont=bcont=ccont=0.0;
printf("Enter a to buy artichokes, b for beets, ");
printf("c for carrots, q to quit: ");
ch=getchar();
while(ch!='q'){
printf("Enter the number you need:");
scanf("%f",&cont);
switch(ch){
case 'a':acont+=cont;break;
case 'b':bcont+=cont;break;
case 'c':ccont+=cont;
default :break;
}
printf("Enter a to buy artichokes, b for beets, ");
printf("c for carrots, q to quit: ");
while(getchar()==' ')
continue;
scanf("%c",&ch);
printf("%c",ch);
}
scont = acont+bcont+ccont;
sum = acont*APRICE+bcont*BPRICE+ccont*CPRICE;
if(scont<=0)
sdel = 0.0;
else if(scont<=5)
sdel = 6.5;
else if(scont>20)
sdel = 14+((int)scont+1-14)*0.5;
else
sdel = 14;
if(sum>=100)
ssum=sum*0.95+sdel;
else
ssum=sum+sdel;
printf("洋蓟的单价是%3.2f,甜菜的单价是%3.2f,胡萝卜的单价是%3.2f\n",APRICE,BPRICE,CPRICE);
printf("买了%4.2f磅的洋蓟,买了%4.2f磅的甜菜,买了%4.2f磅的胡萝卜\n",acont,bcont,ccont);
printf("所订洋蓟的价格是%7.2f,甜菜的价格是%7.2f,胡萝卜的价格是%7.2f\n",
APRICE*acont,BPRICE*bcont,CPRICE*ccont);
printf("蔬菜的总费用是%7.2f美元\n",sum);
if(sum>=100)
printf("折扣是%7.2f美元\n",sum*0.05);
printf("包装和运费一共%7.2f美元\n",sdel);
printf("所有的费用总额是%7.2f美元",ssum);
return 0;
}
学到了一个快捷键:Ctrl+shift+A,可以让整段代码规范缩进
C Primer Plus第七章:控制相关推荐
- C++ Primer Plus 第七章编程题练习
C++ Primer Plus 第七章编程题练习 第一题 题目描述 编写一个程序,不断要求用户输入两个数,直到其中的一个为0.对于每两个数,程序将使用一个 函数来计算它们的调和平均数,并将结果返回给m ...
- 第六章—身份认证、第七章—控制访问
第六章 身份认证 身份认证概述:证实主体的真实身份与其所声称的身份是否相符的过程,是用户对资源访问的第一道关卡,是访问控制和审计的前提. 身份认证 (1)认证系统组成:认证服务器.认证系统用户端软件. ...
- 第七章 控制PL/SQL错误
一.错误控制一览 在PL/SQL中,警告或错误被称为异常.异常可以是内部(运行时系统)定义的或是用户定义的.内部定义的案例包括除零操作和内存溢出等.一些常见的内部异常都有一个预定义的名字,如ZERO_ ...
- C++学习之路(六),C++primer plus 第七章 函数--C++的编程模块
第 7 章 函数---C++的编程模块 本章内容包括: 函数基本知识. 函数原型. 按值传递函数参数. 设计处理数组的函数. 使用 const 指针参数. 设计处理文本字符串的函数. 设计处理结构的函 ...
- c++ primer练习题 第七章 类 (Class)
练习7.1 使用2.6.1节定义的Sales_data类为1.6节的交易处理程序编写一个新版本. 解: #include <iostream> #include <string> ...
- 【C++ primer】第七章 函数-C++的编程模块
1,函数的基本知识 C++对于返回值的类型有一定的限制:不能是数组,但可以使其他任何类型,甚至可以使结构和对象. 有趣的是,虽然数组不可以作为返回对象,但是数组可以作为结构 ...
- C PRIMER PLUS第七章11题
ABC邮购杂货店出售的洋蓟售价为2.05美元/磅,甜菜售价为1.15美元/磅,胡萝卜售价为1.09美元/磅.在添加运费之前,100美元的订单有5%的打折优惠.少于或等于5磅的订单收取6.5美元的运费和 ...
- C primer plus 第七章 练习7:编写程序,要求输入一周的工作小时数,然后打印工资总额,税金以及净工资。
#include<stdio.h> void main(){double cash,time1,time2,s,j;//工资,正常工作时间,加班时间,税金,净工资. printf(&quo ...
- 描述性物理海洋学--第七章学习笔记
第七章学习笔记--海洋环流的动力过程 不稳定理论 判别方法: 大尺度不稳定 中尺度不稳定 控制方程 地流动力学参数 近似简化 正斜压海洋 基本洋流 地转流 风生Ekman 环流 上升流 朗缪尔环流 惯 ...
最新文章
- LeetCode简单题之长度为三且各字符不同的子字符串
- COLING 2020 | 面向机器阅读理解的双向认知思维网络
- 活动目录实战系列七(降级主DC为成员服务器)
- 战双帕弥什显示服务器满员,战双帕弥什星火和信标服务器有何区别
- (一)MySQL优化之索引优化
- php时间截取日期,php中肿么获取给定时间中的日期部分
- C++ 字节序测试代码
- “/etc/profile“ 无法保存 E212: Can‘t open file for writing
- 360浏览器不能打开CSDN登陆页面
- stc15f2k60s2单片机控制led流水灯
- 算法高级(21)-如何通过IP地址进行定位?
- 中病毒了文件夹变exe文件找到方法
- 为什么学python?怎么学?怎样算学会?
- k8s修改默认命名空间
- oracle视图转换为mysql视图_oracle视图迁移到mysql
- redis实战(12):Redis性能监控指标汇总
- 『P3610-2MIC』XMOS USB 双麦阵列板
- Struts2 S2-016/S2-017 命令执行带回显、看web路径、getshell e...
- 金蝶EAS DEP脚本(4)—— 控件常用脚本之设置F7默认值
- Android studio+SQLCipher加密SQLite数据库的几个坑
热门文章
- [第五章] 深入理解计算机系统第三版 家庭作业参考答案
- 房产税,抑制高房价的最后稻草?
- idea回退操作reset、revert
- Linux系统磁盘空间不足解决办法
- 学计算机前端技术学院,百度前端技术学院(任务)
- centos 7下安装php,centos7下安装php7
- 深度学习 英文 训练阶段_深度学习英语单词才是王道丨6步就搞定!
- 51nod 2075 图书管理员
- Mybatis——mapper.xml中常用的SQL相关标签简介
- 累了,困了,来看“MySQL”,让你梦回吹角连营