第六周作业
这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | 要求 |
我在这个课程的目标是 | <指针返回多个函数值> |
这个作业在那个具体方面帮助我实现目标 | <指针> |
参考文献 | <---> |
6-1 求两数平方根之和
函数fun的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y = 7.936238。
函数接口定义:
double fun (double *a, double *b);
其中 a和 b是用户传入的参数。函数求 a指针和b 指针所指的两个数的平方根之和,并返回和。
裁判测试程序样例:
include<stdio.h>
include <math.h>
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
作业代码:
double fun(double a,double b)
{
double result,c,v;
c = sqrt(a);
v = sqrt(b);
result = c + v;
return result;
}
正确截图:
设计思路:!
运行截图:
遇到的问题及解决办法:
:和&有点迷糊,在引用的时候到底是&a还是a,还是&*a,发现指针就老老实实引用*变量
这种格式
7-1 利用指针返回多个函数值
读入n个整数,调用max_min()函数求这n个数中的最大值和最小值。
输入格式:
输入有两行: 第一行是n值; 第二行是n个数。
输出格式:
输出最大值和最小值。
输入样例:
在这里给出一组输入。例如:
5
8 9 12 0 3
输出样例:
在这里给出相应的输出。例如:
max = 12
min = 0
实验代码:
include<stdio.h>
void max_min(int a[],int n,int *maxp,int *minp)
{
int i;
*maxp=a[0];
*minp=a[0];
for(i=1;i<=n-1;i++)
{
if(a[i]>=*maxp)
*maxp=a[i];
else if (a[i]<*minp)
*minp=a[i];
}
}
int main()
{
int a[100],n,i,max,min;
scanf("%d",&n);
for(i=0;i<=n-1;i++)//去掉分号
scanf("%d",&a[i]);
max_min(a,n,&max,&min); //应该是传变量地址,max_min(a,n,maxp,minp);
printf("max = %d\nmin = %d",max,min);
return 0;
}
设计思路:
正确截图:
运行截图:
遇到的问题及解决办法:
-
max_min(a,n,&max,&min); 这个传变量地址出问题,导致输出错误
已解决,是传向max和min而不是指针变量
2.scanf("%d",&a[i]); 这里总是习惯打个空格,后面导致格式错误,回车没显示
已解决,删除空格,成功输出
学习进度表
周/日期 | 所花的时间 | 代码长度 | 学习内容 | 比较迷惑的方面 |
---|---|---|---|---|
3/3-3/9 | 1.5h | 36 | 文件的创建和写入 | 指针的运用 |
3/11-3/15 | 2h | 45 | 判断一个情况时用一个变量来决定,正确取0反则取1这种方法没有这个意识去用 | |
3/19-3/22 | 4h | 48*3 | 排序&找鞍点 | for语句的嵌套 |
3/25-3/29 | 3h | 25 | 英文字母排序 | 指针的运用 |
4/2 | 1h | 40 | 指针返回多个函数的值 | *和&的变化和指针传变量地址的问题 |
总结:
总体上来讲这次作业是比较简单的,单纯的考了一个指针的引用,还复习了一下自定义函数,还是比较轻松的,还有很多富裕的时间学习html和css等等,这周比较满意自己的进度,刚好清明节来了,作业少就是开心
结对编程:
1.刚开始,这次比较简单就随便看了看两个人,没什么很深的交流,相信下次比较难的时候会更进一步.
2.结对编程收获到了博客美化随笔美化方式,哈哈暂时还是有点小收获