博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第六周作业
阅读量:6901 次
发布时间:2019-06-27

本文共 2555 字,大约阅读时间需要 8 分钟。

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里
我在这个课程的目标是 能够准确的写出代码
这个作业在那个具体方面帮助我实现目标 指针
参考文献 C语言课本和百度

6-1 求两数平方根之和 (10 分)

函数fun的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y = 7.936238。

函数接口定义:

double fun (double a, double b);
其中 a和 b是用户传入的参数。函数求 a指针和b 指针所指的两个数的平方根之和,并返回和。

裁判测试程序样例:

#include
#include
double fun (double *a, double *b); int main ( ){ double a, b, y;scanf ("%lf%lf", &a, &b ); y=fun(&a, &b); printf ("y=%.2f\n", y );return 0;}/* 请在这里填写答案 */

输入样例:

12 20

输出样例:

y=7.94

1、实验代码:

double fun (double *a,double *b){  double t,n,y;  t=sqrt(*a);  n=sqrt(*b);  y=t+n;  return y;}

2、流程图:

1581686-20190405171108135-942306487.png

3、运行结果截图:

1581686-20190405164336007-1784055925.png

7-1 利用指针返回多个函数值 (30 分)

读入n个整数,调用max_min()函数求这n个数中的最大值和最小值。

输入格式:

输入有两行: 第一行是n值; 第二行是n个数。

输出格式:

输出最大值和最小值。

输入样例:

在这里给出一组输入。例如:

58 9 12 0 3

输出样例:

在这里给出相应的输出。例如:

max = 12min = 0

1、实验代码:

#include
void max_min(int m[],int d,int *pa,int *pb); int main(void){ int a=0,b=0,i=0,d=0,n; int m[1000]; scanf("%d",&n); for(i=0;i
=m[j]){ j=i; *pa=m[i]; } } j=0; for(i=0;i

2、流程图:

1581686-20190405173308297-1288755529.png

3、调试过程遇到的问题:

问题1:1581686-20190405163637863-397231856.png

解决办法:上网查了一下发现必须要在调用函数里面定义一下那个输入的数组不然解释的时候无法直接用。

4、运行结果截图:

1581686-20190405164144378-1595220591.png

6-3 最小数放前最大数放后 (10 分)

为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换;输出数组元素。。

函数接口定义:

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

三个函数中的 arr和n 都是用户传入的参数。n 是元素个数。

input函数的功能是输入 n个元素存到指针arr所指向的一维数组中。

max_min函数的功能是求指针arr所指向的一维数组中的最大值和最小值,其中最小的数与第一个数对换,将最大的数与最后一个数对换。

output函数的功能是在一行中输出数组元素,每个元素输出占3列。

裁判测试程序样例:

#include
void input(int *arr,int n);void max_min(int *arr,int n);void output(int *arr,int n);int main(){ int a[10];input(a,10); max_min(a,10); output(a,10); return 0;}/* 请在这里填写答案 */

输入样例:

5 1 4 8 2 3 9 5 12 7

输出样例:

1  5  4  8  2  3  9  5  7 12

1、实验代码:

void input(int *air, int n){  int i=0;  for(i=0;i
*(air+i)){ c=i; } } d=*(air+c),*(air+c)=*air,*air=d; c=0; for(i=1;i
*(air+c)){ c=i; } } b=*(air+c),*(air+c)=*(air+n-1),*(air+n-1)=b;}void output(int *air, int n){ int i; for(i=0;i

2、流程图:

1581686-20190405174630058-2081101653.png

3、调试过程遇到的问题:

问题1:1581686-20190405164757745-1636828676.png

解决办法:发现互换的时候顺序搞混乱了所以才造成了有两个1和两个12。

4、运行结果截图:

1581686-20190405164458304-1983180963.png

思考题:(分值等同于编程题)

1.为什么要使用指针?它有什么用?

配合调用函数来进行变量之间的互换。

2.指针变量在内存中暂用多大的空间?它的大小由什么决定?

它跟它的类型有关,也可能跟电脑有关。

学习进度条:

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较困惑的问题
3/11~3/16 10小时 46行 可以同时利用一维数组和二维数组来解题,以及二维数组的使用。 二维数组的二组循环比较迷惑
3/18~3/22 8小时 110 行 冒泡排序和选择排序有相似之处,冒泡找最大值或找最小值是重复比较的,而选择一步到位。 冒泡排序按书上哪种方法把最后一个if判断条件改成小于为什么不能按大到小的顺序输出
3/25~3/29 11小时 69行 strcpy可以用来替换字符串 如何更快的输入字符以及能不能一个一个字符串的输入
4/1~4/5 8小时 74行 用指针来进行互换 指针和数组的关联还不太熟悉

转载于:https://www.cnblogs.com/xht8657/p/10659139.html

你可能感兴趣的文章
python这+=和=的拓展知识
查看>>
oracle集群件
查看>>
linux shell 中"2>&1"含义
查看>>
oracle 11g RAC grid安装前准备
查看>>
01背包 暴力搜索
查看>>
RIP区域和OSPF区域通信
查看>>
MySQL
查看>>
k3cloud开发环境引入dll与net源代码
查看>>
网络安全系列之四十 在Linux中设置SET位权限
查看>>
SCCM OSD部署排错
查看>>
十道非常好的shell脚本试题
查看>>
app项目案例一手机浏览器
查看>>
linuxmint安装配置
查看>>
java 中 isEmpty和isBlank区别
查看>>
申请SSL证书怎样验证域名所有权
查看>>
麒麟开源堡垒机集中管控平台软件简介
查看>>
第十一单元练习
查看>>
从零开始的linux 第十六章
查看>>
EOS内存RAM是如何买卖的
查看>>
微服务架构中zuul的两种隔离机制实验
查看>>