题目6-1 计算两数的和与差
1 设计思路
(1)主要描述算法
第一步:输入数据
第二步:引用函数sum_diff( float op1, float op2, float psum, float pdiff )
第三步:函数sum_diff( float op1, float op2, float psum, float pdiff )中,将形参op1与op2的和赋值给指针psum所指的变量sum,将op1与op2的差赋值给指针pdiff所指的变量diff
第四步:输出sum与diff
2 实验代码
void sum_diff( float op1, float op2, float *psum, float *pdiff )
{
*psum=op1+op2,*pdiff=op1-op2;
}
错误信息1:部分正确
错误原因:在函数中重复定义sum与diff
改正方法:删去重复定义的sum与diff
题目6-2 拆分实数的整数与小数部分
1 设计思路
(1)第一步:定义一个实数x,定义一个实数fracpart作为小数部分,定义一个整数intpart作为整数部分
第二步:引用函数void splitfloat( float x, int intpart, float fracpart )来进行整数部分与小数部分的分解
第三步:函数void splitfloat( float x, int intpart, float fracpart )中将形参x强制转换为整形类型,将得到的值赋给指针intpart所指的变量intpart;将形参x减去指针intpart所指的变量的值所得到的值赋给指针fracpart所指变量fracpart
第四步:输出intpart与fracpart的值
2 实验代码
void splitfloat( float x, int *intpart, float *fracpart )
{
*intpart=(int)x;
*fracpart=x-*intpart;
}
暂无错误
6-1(2) 在数组中查找指定元素
1 设计思路
第一步:定义循环变量i,下标变量index,数组长度变量n以及需要查找数变量x;定义数组a[MAXN];
第二步:对数组的输入以及引用函数search;
第三步:函数search中,通过将数组初地址、长度以及需查找数输入,再用指针对数组进行遍历,最后返回查找到的数的下标并赋给下标变量index;
第四步:按照index的值来输出相应的结果
2 实验代码
int search( int list[], int n, int x )
{
int i;
for(i=0;i<n;i++)
{
if(*(list+i)==x)
{
return i;
break;
}
}
if(i==n)
return -1;
}
暂无错误
6-2(2)找最大值及其下标
1 设计思路
第一步:定义变量、数组,声明函数;
第二步:数组赋值;
第三步:引用函数,在函数中定义一个最大值变量max并将数组的首地址的值赋给max,再通过遍历来比较交换出该数组的最大值以及找到其下标
第四步:返回最大值max并将下标指针中的值改变,输出
2 实验代码
int fun(int *a,int *b,int n)
{
int max = *a;
int i;
for(i=1;i<n;i++)
{
if(*(a+i)>max)
{
max=*(a+i);
*b=i;
}
}
return max;
}
错误信息1:函数返回时未注意下标指针的返回
错误改正:添加下标指针的赋值以及返回即可
学习总结和进度
1.知识点
这两周的PTA作业用到了指针的定义、*运算符的作用以及指针与自定义函数、指针与数组之间的关系相关的知识点
2.托管截图及网址
3.作业点评
辛静瑶
李伍壹
(PS:截至此次作业提交时,只有两人提交作业,故无法做到评价三个人)