c语言程序设计

C语言I博客作业09

那年仲夏 提交于 2019-12-05 02:54:45
这个作业属于哪个课程 C语言程序设计I 这个作业要求在哪里 C语言I-2019秋作业09 我在这个课程的目标是 熟悉break、continue的使用,熟悉使用循环的嵌套解决问题 这个作业在那个具体方面帮助我实现目标 帮助我认识到自己的不足,熟悉循环语句的使用 参考文献 百度百科 一、PTA实验作业 1、打印九九口诀表 题目 下面是一个完整的下三角九九口诀表: 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 本题要求对任意给定的一位正整数N,输出从 1*1 到 N*N 的部分口诀表。 数据处理 数据表达: 获取乘法表需要创建的阶数 数据处理: 使用双 for 循环进行输出 伪代码: 获取循环截至条件 使用 for (int i = 1;

C语言I作业09

邮差的信 提交于 2019-12-05 01:02:56
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 http://edu.cnblogs.com/campus/zswxy/CST2019-1/ 我在这个课程的目标是 提高自己的编程能力 这个作业在那个具体方面帮助我实现目标 让我了解自己的不足 在各个方面提升自己 参考文献 教材书还有百度 1.PTA实验作业 1.1题目名: 1.1.1实验代码截图 1.1.2数据处理 数据表达: 数据处理: 1.1.3 造测试数据 输入数据 输出数据 说明 1.1.4 PTA提交列表及说明 1.2.1 实验代码截图 1.2.2 数据处理 数据表达: 数据处理: 1.2.3 造测试数据 输入数据 输出数据 说明 1.2.4 PTA提交列表及说明 2.代码互评 同学代码截图(刘彦) 同学代码截图(李泽基) 自己代码截图 3.学习总结 3.1 学习进度条 周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 第一周(9.19-3.27)| 6天 | 30行 | Hello world编程和Markdown语法 | 对编程语言的意思不是特别理解 第二周(9.25-10.4)| 3天 | 50行 | 华氏度与摄氏度的转换 | 变量的类型不是很懂 第三周(10.8-10.11) | 2天 | 110行 | 分段函数和if-else语句 | if-else语句不太了解

整数的表示与编码

时间秒杀一切 提交于 2019-12-05 00:23:37
补一下CSAPP的笔记 计算机中整数的表示与编码 计算机中的整数主要包括两种:有符号数与无符号数。 无符号数的编码 其中有符号数的表示方法与传统二进制一致。 假设有一个整数数据类型有w位。我们可以将位向量写成 在这个编码中,每个x i 都取值为0或1。我们用一个函数来表示B2U w 来表示: 无符号数的编码方式实际上与我们所知道的二进制编码方式是一致的。唯一要注意的是无符号数的编码具有唯一性,也就是说一个数字只能有一个无符号数编码。这是因为B2U w 是一个双射。 有符号数的编码 有符号数的编码主要有三种方式:原码、补码与反码。我曾经写过一篇博客来进行探究,这里不赘述。 关于补码的由来和作用 需要说明的是:补码也具有唯一性,原码与反码不具备这种性质,因为0在原码与反码中有两种解释。 有符号数与无符号数之间的转换 有符号数转无符号数 C语言中提供了在不同数据类型中做强制类型转换的方法,对于无符号整数与有符号整数之间的转换方式,大多数系统上默认的是底层的位不变,由此我们能推出有符号数与无符号数之间的转换。 关于这些的转换的的过程和原理,在此不赘述。这里直接给出公式: 一个数的编码方式从无符号编码(补码)转换为有符号编码后的数值公式为: 如果有符号数的真值小于0那么,把真值加上2 w 即为其无符号真值,如果真值大于0,那么不变。 我们用一段C语言代码举例: #include<stdio

C语言程序设计100例之(12):Eratosthenes筛法求质数

五迷三道 提交于 2019-12-05 00:23:18
例12 Eratosthenes筛法求质数 问题描述 Eratosthenes筛法的基本思想是:把某范围内的自然数从小到大依次排列好。宣布1不是质数,把它去掉;然后从余下的数中取出最小的数,宣布它为质数,并去掉它的倍数。在第1步之后,得到质数2,筛中只包含奇数;第2步之后,得到质数3,一直做下去,当筛中为空时结束。 用Eratosthenes筛法求给定区间内的所有质数。 输入格式 两个整数a和b,其中1≤a≤b≤10000 输出格式 输出给定范围[a,b]间的所有质数,输出时每个质数占6列,每行输出10个质数。 输入样例 100 200 输出样例 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 (1)编程思路。 下面采用自顶向下逐步求精的方法解决这个问题。 1)先写出程序的总体框架 初始化,将所有的数都放在筛子中; k=2; while(k<=N) { 用k将筛子中的数2*k、3*k、4*k …,一一筛去; 从当前下标k的下一个开始找到下一个仍在筛子中的数,并赋值给k; } 从2开始,将所有留在筛子中的数(即为质数)打印出来; 2)筛子的构造 为了表示一个筛子,并将给定范围N以内的数放入筛子中,可以定义一个一维数组 int prime[N+1]; 其中

C语言程序设计100例之(11):求质数

有些话、适合烂在心里 提交于 2019-12-04 19:40:14
例11 求质数 问题描述 质数是指除了有1和自身作为约数外,不再有其他约数的数。比如:3、5、7是质数。而9不是质数,因为它还有约数3。 编写程序求给定区间中的所有质数。 输入格式 两个整数a和b,其中1≤a≤b≤100000。 输出格式 输出给定范围的所有质数,输出时每个质数占5列,每行输出10个质数。 输入样例 100 200 输出样例 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 (1)编程思路 判断一个数m是否为质数的方法是:用2~sqrt(m)中的每一个整数i去除m,若某一个i能整除m,则m不是质数;否则,m是质数。该操作可定义为一个函数,如下: int isPrime(int m) { int i; if (m==1) return 0; for (i=2;i<=sqrt(1.0*m);i++) if (m%i==0) return 0; return 1; } 求a~b之间的所有质数,写成一个循环,在循环中调用函数isPrime判断每个整数i是否为质数,若是,则计数并输出。 (2)源程序。 #include <stdio.h> #include <math.h> int isPrime(int m) { int i; if (m==1)

C语言博客作业04—数组

半世苍凉 提交于 2019-12-04 18:45:16
0.展示PTA总分(0----2) 展示3张关于“数组题目集”分数截图。 1.本章学习总结(2分) 1.1 学习内容总结 整理数组这章学习主要知识点,必须包含内容有: (1)数组查找数据 顺序查找法 顺序查找也称为线形查找,属于无序查找算法。从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相比较,若相等则表示查找成功;若扫描结束仍没有找到关键字等于k的结点,表示查找失败。该查找法思路较为简单,容易上手。 /* 举一个例子 */ /*在给定的一组数中查找是否有数字 2*/ #include<stdio.h> int main() { int i; int a[5] = { 1, 2,3,4,5 }; int loc;//记录位置; int flag = 0; for (i = 0; i < 5; i++) { //遍历数组,寻找2; if (a[i] == 2) { loc = i; printf("2在这个数组的第%d项",loc); flag = 1; } } //判断是否发现了数2; if(flag==0) printf("2不在这个数组中。"); } 二分查找法 基本思想:也称为是折半查找,属于有序查找算法。确定上界下界(left,right),用给定值k先与中间结点(mid=(left+right)/2)的关键字比较,中间结点把线性数组分成两部分

C语言程序设计100例之(10):最大公约数

最后都变了- 提交于 2019-12-04 17:10:25
例10 最大公约数 问题描述 有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b。若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c。 输入数据 第一行输入一个n,表示有n组测试数据,接下来的n行,每行输入两个正整数a,b。 输出格式 输出对应的c,每组测试数据占一行。 输入样例 2 6 2 12 4 输出样例 4 8 (1)编程思路。 利用转辗相除法求两个整数的最大公约数。例如,求整数m=48,n=18两个数的最大公约数的方法如左图所示。 具体做法是:,若m%n==0,则n是最大公约数,否则,计算 r=m%n,置m=n,n=r,重复这个过程,直到m%n==0。 将求整数m和n的最大公约数定义为函数 int gcd(int m,intn); 。 在本题中,由于b是a、c的最大公约数,且c!=b,所以对c=2*b、3*b…进行穷举判断即可直到最小的满足条件的c。 (2)源程序。 #include <stdio.h> int gcd(int m, int n) { int r; while(m%n!=0) { r=m%n; m = n; n = r; } return n; } int main() { int t,a,b,c; scanf("%d",&t); while(t--) { scanf("%d%d",&a,&b); c=2*b; while(gcd

C语言I博客作业08

为君一笑 提交于 2019-12-04 15:19:50
这个作业属于哪个课程 C语言程序设计II 这个作业的要求在哪里 C语言I作业08 我在这个课程的目标是 熟悉使用while和do-while结构解决问题 这个作业在哪个具体方面帮助我实现目标 PTA作业,编程 参考文献 C语言程序设计,百度百科 1.PTA实验作业 1.1 韩信点兵 在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数: 按从1至5报数,记下最末一个士兵报的数为1; 再按从1至6报数,记下最末一个士兵报的数为5; 再按从1至7报数,记下最末一个士兵报的数为4; 最后按从1至11报数,最末一个士兵报的数为10; 请编写程序计算韩信至少有多少兵。 1.1.1 数据处理 1.1.2 实验代码截图 1.1.3 造测试数据 输入数据 输出数据 说明 本题无输入 21111 韩信最少有2111人 1.1.4 PTA提交列表及说明 ·答案错误:程序无法按照要求进入while循环,输出值错误 ·答案错误:程序无法进入for循环,输出值错误 ·编译错误:对for循环进行修改的时候多输入了一个值 1.2 爬动的蠕虫 一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸

C语言I博客作业08

点点圈 提交于 2019-12-04 15:17:28
这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 C语言I博客作业08 我在这个课程的目标是 学习C语言,码代码,为后面的学习打好基础 这个作业在哪个具体方面帮助我实现目标 更加了解编程及代码题的编写 参考文献 PTA系统常见问题解答 ; C语言基础知识 ; whlie 1.PTA实验作业 1.1 jmu-c-二进制转10进制 (20 分) 输入一组二进制字符,输出其对应的十进制数。当输入回车键时,输入结束。若输入非二进制字符,输出error input! 输入样例1: 11111111 输出样例1: 255 输入样例2: 34 输出样例2: error input! 1.1.1数据处理 数据表达:用了变量num,i,item,sum,s,其中num表示二进制字符,sum表示十进制数,s表示用于之后的输出计算;其中#include<string.h>为用字符串处理函数的头文件;其中%s为字符串型格式符。 数据处理:伪代码 include<stdio.h> include<math.h> include<string.h> 运用到了字串符头文件 int main() { 定义字符型变量num;整形变量i,item,sum,s 将新取值1赋值给s,将0赋值给sum 输入num 运用for循环 for(i=0;num[i]>0;i++) { 如果num[i] 不等于'0'

C语言I作业08

不羁岁月 提交于 2019-12-04 15:17:21
这个作业属于哪个课程 C语言程序设计 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-3/homework/9982 我在这个课程的目标是什么 熟悉和运用c语言,努力提升自己的实力 这个作业在哪个具体方面帮助我实现目标 学会使用while和do-while语句 参考文献 C语言课本,百度 1.PTA实验作业 1.1题目名 在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数: 按从1至5报数,记下最末一个士兵报的数为1; 再按从1至6报数,记下最末一个士兵报的数为5; 再按从1至7报数,记下最末一个士兵报的数为4; 最后按从1至11报数,最末一个士兵报的数为10; 请编写程序计算韩信至少有多少兵。 1.1.1数据处理 数据表达:变量为人数n 数据处理:使用了scanf和if else语句 伪代码: 定义变量,n 使用while语句进行循环 利用n%5==1 n%6==5 && n%7==4 n%11==10进行循环 循环到了就break跳出 没循环到就进行else语句 最后输出人数 1.1.2实验代码截图 1.1.3PTA提交列表及说明 说明