第3周

3.1 if语句

else总是和离它最近的if配对。

3.2 switch语句

表达式的值必须是整数类型(int, char...)。

常量表达式必须是整数类型的常量(int, char...),不能包含变量。

3.3 for循环

循环控制变量定义在“表达式1”中,则只在for语句内部起作用,可以不用担心循环控制变量重名。

循环结构里的“表达式1”和“表达式3”都可以是用逗号连接的若干个表达式。

“表达式1”“表达式2”“表达式3”都可以不写,但是“;”必须保留。

3.4 whie循环和do while循环

作业

1.奇偶数判断

Description:给定一个整数,判断该数是奇数还是偶数。

Input:输入仅一行,一个大于零的正整数n。

Output:输出仅一行,如果n是奇数,输出odd;如果n是偶数,输出even。

Sample Input:5

Sample Output:odd

 1 #include <cstdio>
 2
 3 int main()
 4 {
 5     int a;
 6     scanf("%d", &a);
 7
 8     if(a%2 == 0) printf("even\n");
 9     else printf("odd\n");
10
11     return 0;
12 }

2.求一元二次方程的根

Description:利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2+ bx + c =0的根,其中a不等于0。

Input:输入一行,包含三个浮点数a, b, c(它们之间以一个空格分开),分别表示方程ax2 + bx + c =0的系数。

Output:

输出一行,表示方程的解。

若b2 = 4 * a * c,则两个实根相等,则输出形式为:x1=x2=...。

若b2 > 4 * a * c,则两个实根不等,则输出形式为:x1=...;x2 = ...,其中x1>x2。

若b2 < 4 * a * c,则有两个虚根,则输出:x1=实部+虚部i; x2=实部-虚部i,即x1的虚部系数大于等于x2的虚部系数,实部为0时不可省略。实部 = -b / (2*a), 虚部 = sqrt(4*a*c-b*b) / (2*a)

所有实数部分要求精确到小数点后5位,数字、符号之间没有空格。

Sample Input:(1)1.0 2.0 8.0  (2)1 0 1

Sample Output:(1)x1=-1.00000+2.64575i;x2=-1.00000-2.64575i  (2)x1=0.00000+1.00000i;x2=0.00000-1.00000i

 1 #include <cstdio>
 2 #include <cmath>
 3
 4 #define EPS 1e-7
 5
 6 int main()
 7 {
 8     double a, b, c;
 9     scanf("%lf %lf %lf", &a, &b, &c);
10
11     double tmp = b*b-4*a*c;
12     if(tmp<EPS && tmp>-EPS)
13         printf("x1=x2=%.5f\n", (-b)/(2*a)+EPS);
14     else if(tmp > EPS) {
15         double x1 = (-b+sqrt(tmp))/(2*a);
16         double x2 = (-b-sqrt(tmp))/(2*a)+EPS;
17         if(x1-x2 > EPS)
18             printf("x1=%.5f;x2=%.5f\n", x1+EPS, x2+EPS);
19         else
20             printf("x1=%.5f;x2=%.5f\n", x2+EPS, x1+EPS);
21     }
22     else {
23         printf("x1=%.5f+%.5fi;x2=%.5f-%.5fi\n", (-b)/(2*a)+EPS, sqrt(-tmp)/(2*a)+EPS, (-b)/(2*a)+EPS, sqrt(-tmp)/(2*a)+EPS);
24     }
25
26     return 0;
27 }

3.点和正方形的关系

Description:有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断一个给定的点是否在这个正方形内(包括正方形边界)。

Input:输入一行,包括两个整数x、y,以一个空格分开,表示坐标(x,y)。

Output:输出一行,如果点在正方形内,则输出yes,否则输出no。

Sample Input:1 1

Sample Output:yes

 1 #include <cstdio>
 2
 3 int main()
 4 {
 5     int x, y;
 6     scanf("%d %d", &x, &y);
 7
 8     if(x>=-1 && x<=1 && y>=-1 && y<=1)
 9         printf("yes\n");
10     else
11         printf("no\n");
12
13     return 0;
14 }

4.苹果和虫子

Description:你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?

Input:输入仅一行,包括n,x和y(均为整数)。

Output:输出也仅一行,剩下的苹果个数

Sample Input:10 4 9

Sample Output:7

 1 #include <cstdio>
 2
 3 int main()
 4 {
 5     int n, x, y;
 6     scanf("%d %d %d", &n, &x, &y);
 7
 8     int tmp = y/x;
 9     if(y%x != 0)
10         tmp++;
11     if(n >= tmp)
12         printf("%d\n", n-tmp);
13     else
14         printf("0\n");
15
16     return 0;
17 }

5.简单计算器

Description:一个最简单的计算器,支持+, -, *, / 四种运算。仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围。

Input:输入只有一行,共有三个参数,其中第1、2个参数为整数,第3个参数为操作符(+,-,*,/)。

Output:

输出只有一行,一个整数,为运算结果。然而:
1. 如果出现除数为0的情况,则输出:Divided by zero!
2. 如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!

Sample Input:1 2 +

Sample Output:3

 1 #include <cstdio>
 2
 3 int main()
 4 {
 5     int x, y;
 6     char c;
 7     scanf("%d %d %c", &x, &y, &c);
 8
 9     if(c!=‘+‘ && c!=‘-‘ &&c!=‘*‘ &&c!=‘/‘)
10         printf("Invalid operator!\n");
11     else if(c == ‘+‘) {
12         printf("%d\n", x+y);
13     } else if(c == ‘-‘) {
14         printf("%d\n", x-y);
15     } else if(c == ‘*‘) {
16         printf("%d\n", x*y);
17     } else {
18         if(y == 0)
19             printf("Divided by zero!\n");
20         else
21             printf("%d\n", x/y);
22     }
23
24     return 0;
25 }

6.求整数的和与均值

Description:读入n(1 <= n <= 10000)个整数,求它们的和与均值。

Input:输入第一行是一个整数n,表示有n个整数。第2~n+1行每行包含1个整数。每个整数的绝对值均不超过10000。

Output:输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间用单个空格分隔。

Sample Input:

4

344

222

343

222

Sample Output:1131 282.75000

 1 #include <cstdio>
 2
 3 int main()
 4 {
 5     int n, sum = 0;
 6     scanf("%d", &n);
 7     for(int i=0; i<n; i++) {
 8         int tmp;
 9         scanf("%d", &tmp);
10         sum += tmp;
11     }
12
13     printf("%d %.5f\n", sum, (double)sum/n);
14
15     return 0;
16 }

7.整数序列的元素最大跨度值

Description:给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)。

Input:一共2行,第一行为序列的个数n(1 <= n <= 1000),第二行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。

Output:输出一行,表示序列的最大跨度值。

Sample Input:

6

3 0 8 7 5 9

Sample Output:9

 1 #include <cstdio>
 2
 3 int main()
 4 {
 5     int n, minN = 1001, maxN = -1;
 6     scanf("%d", &n);
 7     for(int i=0; i<n; i++) {
 8         int tmp;
 9         scanf("%d", &tmp);
10         if(tmp < minN)
11             minN = tmp;
12         if(tmp > maxN)
13             maxN = tmp;
14     }
15
16     printf("%d\n", maxN-minN);
17
18     return 0;
19 }

8.奥运奖牌计数

Description:2008年北京奥运会,A国的运动员参与了n天的决赛项目(1≤n≤17)。现在要统计一下A国所获得的金、银、铜牌数目及总奖牌数。

Input:输入n+1行,第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目,以一个空格分开。

Output:输出1行,包括4个整数,为A国所获得的金、银、铜牌总数及总奖牌数,以一个空格分开。

Sample Input:

3

1 0 3

3 1 0

0 3 0

Sample Output:4 4 3 11

#include <cstdio>

int main()
{
    int n, a, b, c, gold = 0, silver = 0, copper = 0;
    scanf("%d", &n);
    for(int i=0; i<n; i++) {
        scanf("%d %d %d", &a, &b, &c);
        gold += a;
        silver += b;
        copper += c;
    }

    printf("%d %d %d %d\n", gold, silver, copper, gold+silver+copper);

    return 0;
}

9.乘方计算

Description:给出一个整数a和一个正整数n,求乘方an

Input:一行,包含两个整数a和n。-1000000 <= a <= 1000000,1 <= n <= 10000。

Output:一个整数,即乘方结果。题目保证最终结果的绝对值不超过1000000。

Sample Input:2 3

Sample Output:8

 1 #include <cstdio>
 2
 3 int main()
 4 {
 5     int a, n;
 6     scanf("%d %d", &a, &n);
 7     int num = a;
 8     for(int i=1; i<n; i++) {
 9         num *= a;
10     }
11
12     printf("%d\n", num);
13
14     return 0;
15 }

a.鸡尾酒疗法

Description:

鸡尾酒疗法,原指“高效抗逆转录病毒治疗”(HAART),由美籍华裔科学家何大一于1996年提出,是通过三种或三种以上的抗病毒药物联合使用来治疗艾 滋病。该疗法的应用可以减少单一用药产生的抗药性,最大限度地抑制病毒的复制,使被破坏的机体免疫功能部分甚至全部恢复,从而延缓病程进展,延长患者生 命,提高生活质量。人们在鸡尾酒疗法的基础上又提出了很多种改进的疗法。为了验证这些治疗方法是否在疗效上比鸡尾酒疗法更好,可用通过临床对照实验的方式 进行。假设鸡尾酒疗法的有效率为x,新疗法的有效率为y,如果y-x大于5%,则效果更好,如果x-y大于5%,则效果更差,否则称为效果差不多。下面给 出n组临床对照实验,其中第一组采用鸡尾酒疗法,其他n-1组为各种不同的改进疗法。请写程序判定各种改进疗法效果如何。

Input:

第一行为整数n( 1 < n <= 20);
其余n行每行两个整数,第一个整数是临床实验的总病例数(小于等于10000),第二个疗效有效的病例数。
这n行数据中,第一行为鸡尾酒疗法的数据,其余各行为各种改进疗法的数据。

Output:有n-1行输出,分别表示对应改进疗法的效果:如果效果更好,输出better;如果效果更差,输出worse;否则输出same

Sample Input:

5

125 99

112 89

145 99

99 97

123 98

Sample Output:

same

worse

better

same

 1 #include <cstdio>
 2
 3 #define eps 1e-6
 4
 5 int main()
 6 {
 7     int n;
 8     int total, valid;
 9     scanf("%d", &n);
10     scanf("%d %d", &total, &valid);
11     double x = (double)valid/total;
12     while(--n) {
13         scanf("%d %d", &total, &valid);
14         double y = (double)valid/total;
15         if(y-x-0.05 > eps)
16             printf("better\n");
17         else if(x-y-0.05 > eps)
18             printf("worse\n");
19         else
20             printf("same\n");
21     }
22
23     return 0;
24 }
时间: 2024-10-13 08:52:30

第3周的相关文章

win10周年版eNSP中启动AR提示错误代码40问题

win 10操作系统中安装eNSP 1.2.00.380,一直运行正常,但在2016年11月升级win 周年版之后,启动AR时启动失败,提示错误代码40. 卸载eNSP及VirtualBox之后重装问题依旧.按照论坛和网上各种说法更新virtualbox修改虚拟网卡设置,或者重新注册都无法解决,最终多方查找终于找到解决方案. 环境:win10 周年版,eNSP 1.2.00.380,VirtualBox 4.2.8 eNSP注册后virtualbox管理器中会出现AR_Base,WLAN_AC_

每周进度条(第十五周)

第十五周进度条   第十五周 所花时间 1h 代码量(行)  100 博客量(篇)  1 学到的知识 对图片的处理 在Android程序中加入图片

201405644 嵌入式程序设计第五周学习总结

嵌入式课程设计第五周学习总结 标准 I/O 编程 标准 I/O 提供流缓冲的目的是尽可能减少使用 read()和 write()等系统调用的数量.标准 I/O 提供了 3 种类型 的缓冲存储.全缓冲.行缓冲.不带缓冲. 打开文件 打开文件有三个标准函数,分别为:fopen().fdopen()和 freopen().其中 fopen()可以指定打开文件的路径和模式,fdopen()可以指定打开的文件描述符和模式,而 freopen() 除可指定打开的文件.模式外,还可指定特定的 I/O 流. f

20155208徐子涵 2016-2017-2 《Java程序设计》第6周学习总结

20155208徐子涵 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 10.1.1 1.Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象. 2.若要将数据从来源中取出,可以使用输入串流:若要将数据写入目的地,可以使用输出串流.在java中,输入串流代表对象为java.in.InputStream的实例:输出串流代表对象为java.io.Outputstream的实例. 3.read()方法每次尝试读取数据,并返回实际读入的,只要不是负一

20155336 2016-2017-2《JAVA程序设计》第一周学习总结

# 20155336  2016-2017-2<JAVA程序设计>第1周学习总结 ## 教材学习内容总结 开学的第一周,带着些许的欣喜和好奇,听完了老师的第一堂课.说心里话学习JAVA仿佛观看一部英文影视作品一样头疼, 因为总会有许许多多相似的名字让你记得晕头转向.JAVA也是一样,什么JVM啊JRE啊JDK啊 (/(ㄒoㄒ)/~~)  等等一系列 的英文缩写,让人心神意乱~~但总体上对JAVA有了一个初步的了解.通过课上老师的介绍以及课下对JAVA书第一章的浏览, 我简单的了解了JAVA艰辛

《七周七数据库》读书分享

# 七周七数据库 读书分享会第一期 2017.02.12 <七周七数据库> - Eric Redmond ## 预备知识 ACID:原子 一致 隔离 持久 CAP原则:一致性 可用性 分区容错性,在分布式环境下,至多只能同时满足其二 "小明,你的数据库作业呢?""我可以今天提交一半的作业,或者明天提交全部的作业,但无法在今天提交全部的作业.""...小明你给我滚出去!" 小知识点: * 原子性:原子性代表中间状态的透明性,想象从a账户

20145336张子扬 《信息安全系统设计基础》第7周学习总结

20145336张子扬 <信息安全系统设计基础>第1周学习总结 教材学习内容总结 学习目标: 了解常见的存储技术(RAM.ROM.磁盘.固态硬盘等) 理解局部性原理 理解缓存思想 理解局部性原理和缓存思想在存储层次结构中的应用 高速缓存的原理和应用 三种常见存储技术:RAM.ROM和磁盘 随机访问存储器RAM分为静态RAM(SRAM)和动态RAM(DRAM) SRAM 用来作为高速缓存储存器,SRAM将每个位存储在一个双稳态的存储器单元里,每个单元是用一个六晶体管电路来实现的.它可以无限制地保

20145317《信息安全系统设计基础》第六周学习总结(1)

20145317<信息安全系统设计基础>第六周学习总结(1) 第四章 处理器体系结构 指令体系结构:一个处理器支持的指令和指令的字节级编码 4.1Y86指令集体系结构 Y86:包括定义各种状态元素.指令集和它们的编码.一组编程规范和异常事件处理. Y86程序中的每条指令都会读取或修改处理器状态的某些部分.Y86具体包括:8个程序寄存器.3个条件码ZF\SF\OF.程序计数器(PC) Y86用虚拟地址引用存储器位置. 程序状态的最后一个部分是状态码Stat,它表明程序执行的总体状态. 注意:条件

20145239 《信息安全系统设计基础》第5周学习总结

20145239<信息安全系统设计基础>第5周学习总结 教材学习内容 x86寻址方式 DOS时代的平坦模式,不区分用户空间和内核空间,很不安全 8086的分段模式 IA32的带保护模式的平坦模式 机器级编程的两种抽象 -ISA(Instruction set architecture).ISA简单来说就是指令集体系结构.定义了处理机状态,指令格式以及指令对状态的影响.-机器级使用的存储器地址是虚拟地址. 机器代码中的处理机状态 程序计数器(PC)表示将要执行的下一条指令在存储器中的地址. 整数

20145216史婧瑶《信息安全系统设计基础》第3周学习总结

20145216史婧瑶<信息安全系统设计基础>第3周学习总结 教材学习内容总结 十六进制表示法C表示法以0x或0X开头的数字常量为十六进制进制转换常用进制:二进制(B),十进制(D),八进制(O或者Q),十六进制(H) 转换为二进制-十六进制相互转换,二进制的四位数字对应十六进制的一位数字. 同理,二进制与八进制的转化是三位对应一位. 但是通常情况下,进制转换都以二进制为桥梁进行转换. 对于一个字长为w位的机器来说,虚拟地址的范围是0~2^w-1.程序最多访问2的w次方个字节. 数据大小: 在