第二学期-第一次作业

C高级第一次PTA作业(1)

1. 计算两数的和与差

1.设计思路

第一步:设出被调用函数 op1, op2, *psum,  *pdiff ,利用被调函数计算*psum的值和*pdiff的值;

第二步:代入到主函数就是计算a、b的和与差;

第三部:对所得到数值进行输出;

2.流程图

3.插入代码

1 void sum_diff( float op1, float op2, float *psum, float *pdiff )
2 {
3   *psum = op1 + op2;
4   *pdiff = op1 - op2;
5 }

4.本题调试中遇到的问题:

未遇到问题;

2. 拆分实数的整数与小数部分

1.设计思路

第一步:根据主函数,设出被调用函数x, *intpart, *fracpart ,计算出*intpart的值、*fracpart的值;

第二步:主函数中输入函数x、fracpart,并且输入x的值,利用被调函数得出intpart和fracpart的值;

第三步:对所得到数值进行输出;

2.流程图

3.插入代码

1 void splitfloat( float x, int *intpart, float *fracpart )
2 {
3   *intpart = (int)x;
4   *fracpart = x - *intpart;
5 }

C高级第一次PTA作业(2)

1 .在数组中查找指定元素

 1.设计思路

第一步:利用主调函数设出被调函数list[],  n, x,定义i、index、n、x为整形,输入n;

第二步:利用for循环输入a[i],调用被调函数确定index的值;

第三步:被调函数中,设j、q,为整形,利用for循环,寻找是否有x = list[j],如果有,则使q = j,如果没有,则q= -1;

第四步:利用if条件句,输出结果;

2.流程图

3.插入代码

 1     int search( int list[], int n, int x )
 2     {
 3         int j,q=-1;
 4         for(j=0;j<n;j++)
 5         {
 6             if(x==list[j])
 7             {
 8             q=j;
 9             break;
10             }
11         }
12         return(q);
13     }

2 .找最大值及其下标

1.设计思路

第一步:N =10,根据主调函数写出被调函数*a、*b、n,设q和j、q=a[0];

第二步:利用for循环查出是否有q < a[j],如果有,则把a[i]的值赋给q,j的地址赋给b;

第三步:另a[N]、i、max、p为整形,设p = 0;利用for循环输入a[i]的值,根据被调用函数比较出a、&p、N的最大值;

第四步:输出所得的最大值和p的值。

2.流程图

3.插入代码

 1 int fun(int *a,int *b,int n)
 2 {
 3         int q = a[0];
 4         int j;
 5         for(j=0;j<n;j++)
 6         {
 7             if(q < a[j])
 8             {
 9                 q = a[j];
10                 *b = j;
11             }
12         }
13         return(q);
14     }

C高级第一次PTA作业(3)

1 .最小数放前最大数放后

1.设计思路

最重要的是被调函数的填写

第一步: 设出三个被调用函数,input(int*arr,int n)函数输入n个元素到arr中。

另i为整形,利用for循环在a[i]中输入10个新的元素。

第二步:max_min(int *arr, int n)函数求指针arr所指向的一维数组中的最大值和最小值,其中最小的数与第一个数对换,将最大的数与最后一个数对换。

设最小的元素和最大的元素都为a[0],令 i,temp,int ,q,w为整形,其中q= 0,w = 0;利用for循环把最大值和最小值进行赋值,q, w分别为最小值和最大                 值的下标。把所查找出的最大的下标与为加入数据前最大的数进行交换,把a[w]与a[rr+n-1]交换,同理,把a[p]与a[arr+0]作交换。

第三步:output(int*arr,int n)在一行中输出数组元素,每个元素输出占3列。使i为整形,利用for循环输出a[arr+i]的值。

2.流程图

input(int*arr,int n)                                               max_min(int *arr, int n)                                                       output(int*arr,int n)

 

 
 
 

原文地址:https://www.cnblogs.com/sun031915/p/8644175.html

时间: 2024-09-29 10:06:15

第二学期-第一次作业的相关文章

第二骗+第一次作业

这是一个每5分钟自动获取河大教务处最新通知的小的不能再小的程序,还是一个可怕的死循环,本来设想是每次循环结束后一分钟之内输入结束即可退出,不输入的话自动跳过并继续循环,不过实在不知道咋办了,百度看不大懂,以后多学一些应该就可以了. import requests import time import re #按照课本推荐的方式定义获取文本的方式,防止网络问题导致错误 def gethtmltext(url): try: r = requests.get (url,timeout=30) r.ra

2010-2011学年第二学期第一次班会课发言稿

亲爱的同学们: 新的一学期开始了,我们回到了老教室,看到熟悉的面孔,但要带着新的希望,踏上了新的征程.同学们,让我们在新学期的开始,看一下东方的第一抹朝阳,反省一下自己:昨日的时光是否虚度,昨日的梦是否依然,我的心是否还在飞扬? 也许,你昨天曾拥有辉煌,但那已成为枕边一段甜蜜的回味:也许,你昨日曾遭受挫折,但那已成为腮边几滴苦涩的泪痕.忘记以前的成功与失败,我们只需要把经验和教训铭刻于心. 很多理想在追求前是个梦,追求过程中是篇诗,追求后则是一首老歌.追求的过程是最美丽.最浪漫的季节.只要在追求

解题报告——2018级2016第二学期第四周作业 (2的幂次方)

解题报告——2018级2016第二学期第四周作业 题目: 描述 任何一个正整数都可以用2的幂次方表示.例如:137=27+23+20. 同时约定方次用括号来表示,即ab 可表示为a(b). 由此可知,137可表示为:2(7)+2(3)+2(0) 进一步:7= 22+2+20   (21用2表示) 3=2+20 所以最后137可表示为: 2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如:1315=210 +28 +25 +2+1 所以1315最后可表示为: 2(2(2+2(0))+

解题报告——-2018级2016第二学期第三周作业

解题报告——2018级2016第二学期第三周作业 A:[NOIP2002P]过河卒 题目: 描述 如图,A 点有一个过河卒,需要走到目标 B   点.卒行走规则:可以向下.或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点.例 如上图 C  点上的马可以控制 9 个点(图中的P1,P2 … P8 和 C).卒不能通过对方马的控制点. 棋盘用坐标表示,A 点(0,0).B 点(n,m)(n,m 为不超过 20  的整数,并由键盘输入)

解题报告——2018级2016第二学期第二周作业

解题报告——2018级2016第二学期第二周作业 D:迷宫问题 题目描述: 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线. 输入 一个5 × 5的二维数组,表示一个迷宫.数据保证有唯一解. 输出 左上角到右

解题报告——2018级2016第二学期第五周作业排座椅

解题报告--2018级2016第二学期第五周作业 F:排座椅 描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来 之后,只有有限的D对同学上课时会交头接耳.同学们在教室中坐成了M行N列,坐在第i行第j列的同学的位置是(i,j),为了方便同学们进出,在教室中设 置了K条横向的通道,L条纵向的通道.于是,聪明的小雪想到了一个办法,或许可以减少上课时学生交头接耳的问题:她打算重新摆放桌椅,改变同学们桌椅

解题报告—— 2018级2016第二学期第五周作业 删数问题

解题报告--  2018级2016第二学期第五周作业 删数问题 描述 键盘输入一个高精度的正整数n(<=240位),去掉其中任意s个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小. 输入ns输出最后剩下的最小数样例输入 178543 4 样例输出 13 分析: 这题题目上已表明是贪心算法:原本最容易产生的错误贪心准则是删去其中最大的数字:但通过简单举例便可得之,这种贪心准则要漏洞:通过简单的计算举例发现如果这个数是一位比一位大的话

解题报告——2018级2016第二学期第一周作业

解题报告——2018级2016第二学期第一周作业 D 算24 题目描述 描述 给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式.现在的问题是,是否存在一种方式使得得到的表达式的结果等于24. 这里加减乘除以及括号的运算结果和运算的优先级跟我们平常的定义一致(这里的除法定义是实数除法). 比如,对于5,5,5,1,我们知道5 * (5 – 1 / 5) = 24,因此可以得到24.又比如,对于1,1,4,2,我们怎么都不能得到24. 输入 输入数据包括多

2015-2016-1 学期《软件工程》第一次作业【点评】--- 欢迎其他老师和同学补充

第一次作业全部批改结束,总体情况如下: (1) 部分同学是从网络上搜索资料,一个链接直接copy.--- 直接 0 分: (人数在2位数) (2) 部分同学是从网络上搜索资料,多个链接(信息来源)整合在一起.--- 视其整合的深度,给予10~50 分:(人数在2位数) (3) 极少数同学也借鉴了网络资料,但是结合自己的体会给出了相应的分析. --- 给予60~90 分:(人数在个位数) ==== 对同学们的建议: (1)引用资料时(特别是网络上一些网页)要注意其资料的真实性.权威性和时效性.典型