题目6-1 计算两数的和与差
1.设计思路
(1) 主要描述题目算法
第一步:阅读题目,明确题目要求。引用void sum_diff( float op1, float op2, float psum, float pdiff )
第二步:明确 op1,op2,psum,pdiff的作用以及四者之间的联系。
第三步:代入所要求的数据进行检验。
2.实验代码
void sum_diff( float op1, float op2, float *psum, float *pdiff )
{
*psum=op1+op2;
*pdiff=op1-op2;
}
3.流程图
4.调试结果
答案正确
题目6-2 拆分实数的整数与小数部分
1.设计思路
(1) 主要描述题目算法
第一步:阅读题目,明确题目要求。拆分整数小数。引用void splitfloat( float x, int intpart, float fracpart );
第二步:明确intpart,fracpart,x之间的关系。
第三步:代入所要求的数据进行检验。
2.实验代码
void splitfloat( float x, int *intpart, float *fracpart )
{
*intpart=x / 1;
*fracpart=x-*intpart;
}
3.流程图
4.调试结果
答案正确
题目6-1 在数组中查找指定元素
1.设计思路
(1) 主要描述题目算法
第一步:阅读题目,明确题目要求。在数组中查找指定元素。引用int search( int list[], int n, int x );
第二步:通过for循环对数组中的元素进行查找。
第三步:查找到返回该数值,否则,返回-1。
第四步:输入要求数值进行检验
2.实验代码
int search( int list[], int n, int x )
{
int i;
for(i=0;i<n;i++)
{
if(list[i]==x)
{
return i;
}
}
return -1;
}
3.流程图
4.调试结果
答案正确
题目6-2 找最大值及其下标
1.设计思路
(1) 主要描述题目算法
第一步:阅读题目,明确题目要求。在一维整型数组中找出其中最大的数及其下标。引用int fun(int a,int b,int n);
第二步:定义一个c,max,查找出c,max,a,b,n之间的联系。
第三步:通过for循环和判断结合找到最大值,以此定义出下标。
第四步:第四步:输入要求数值进行检验。
2.实验代码
int fun(int *a,int *b,int n)
{
int *c,max=*a;
for(c=a+1;c<a+n;c++)
if(*c>max)
{
max=*c;
*b=c-a;
}
return max;
}
3.流程图
4.调试结果
检查几次,终于答案正确
题目6-1 判断回文字符串
1.设计思路
(1) 主要描述题目算法
第一步:阅读题目,明确题目要求。判断给定的一串字符是否为“回文”。引用bool palindrome( char *s );
第二步:定义出i,j,n,因为是求回文,因此有正反两方向都一样,因此要正反都判断。
第三步:判断从两头起的相对应的字符是否相同。
第四部:判断并且返回“是”“否”。
2.实验代码
bool palindrome( char *s )
{
int i,j,n=0;
while(s[n]!=‘\0‘) n++;
n--;
for(i=0,j=n;i<j;i++,j--)
if(s[i]!=s[j])break;
if(i>=j)return 1;
return 0;
}
3.流程图
4.检查结果
由于习惯原因,改了一次之后正确
题目6-2 使用函数实现字符串部分复制
1.设计思路
(1) 主要描述题目算法
第一步:阅读题目,明确题目要求。将输入字符串t中从第m个字符开始的全部字符复制到字符串s中。引用void strmcpy( char t, int m, char s );
第二步:定义i,j,n.字符串复制。
第三步:进入特定的循环。
第四步:进行检验。
2.实验代码
void strmcpy(char *t, int m, char *s)
{
int i, j,n;
strcpy(s, t);
n = strlen(s);
for (i = m - 1; i>0; i--) {
for (j = i; j<n; j++) {
*(s + j - 1) = *(s + j);
}
}
*(s + n - m + 1) = ‘\0‘;
}
3.流程图
4.实验结果
提交两次,最后对了