第一题:

            计算两数的和与差

设计思路:

                  1:看题目:主函数与函数声明,知道它要你干什么
2:理解与分析:在main中,定义两个实数a,b;要你求两数的和与差
3:解答:通过调用函数sum_diff,指针psum接收&sum,指针pdiff接收&diff,实数op1接收实数a,实数op2接收实数b,计算两数的和与差:*psum=op1+op2;,*pdiff=op1-op2
4:输出

流程图:

实验代码:

 void sum_diff( float op1, float op2, float *psum, float *pdiff )
{
*psum=op1+op2;
*pdiff=op1-op2;
}

错误信息:


第二题:

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

设计思路:

               1:看题目:主函数与函数声明,知道它要你干什么
2:理解与分析:在main中,给你一个实数x,要求你将他的整数与小数分离
3:解答:在splitfloat中,利用实数x接收main中的x,利用指针intpart接收main中的&intpart,利用指针fracpart接收main中的&fracpart,再先分解x整数部分:*intpart=(int)x,小数等于x减去整数:*fracpart=x-*intpart

流程图:

实验代码:

void splitfloat( float x, int *intpart, float *fracpart )
{
*intpart=(int)x;
*fracpart=x-*intpart;
}

错误信息:

            1:求整数时,写成了*intpart=x/1

改正方式:

           1:将它改为:*intpart=(int)t;

小结:

             整数除以整数还是整数,浮点数(或者整数)除以整数(或者浮点数)是浮点数,浮点数除以浮点数还是浮点数

疑问:为什么这个也可以通过?

void splitfloat( float x, int *intpart, float *fracpart )
{
*intpart=x/1;
*fracpart=x-*intpart;
}

第三题:

           在数组中查找指定元素

设计思路:

                 1:看题目:主函数与函数声明,知道它要你干什么
2:理解与分析:题目给你一个数组a[MAXN],里面存有一些数字,然后再让你输入一个数字x,看数组中是否存在这个数,在调用函数list{},判断这个数是否在数组中,若在,返回这个数的下标,反之,返回-1

流程图:

实验代码:

int search( int list[], int n, int x )
{
int s=-1;
int i;
for(i=0;i<n;i++)
{
if(list[i]==x)
{
s=i;break;
}
}
return s;
}

错误信息:


第四题:

            找最大值及其下标

设计思路:

                   1:看题目:主函数与函数声明,知道它要你干什么
2:理解与分析:题目给你一个数组a[N],让你调用函数fun找出最大值max,,并输出它的下标p
3:解答:在函数fun中,指针a接受数组a[ ],n接受数组大小N,用指针p接受最大的下标,再用一个for循环找出最大值及其下标

流程图:

实验代码:

int fun(int *a,int *b,int n)
{
int i;
int s=a[0];
for(i=1;i<n;i++)
{
if(s<a[i])
{
s=a[i];
*b=i;
}
}
return s;
}

错误信息:


改正方式:


我的总结

       在这两周中,我们学习了许多知识点,其中有通过调用函数:在数组中查找指定元素,这题目判断一个数是否在数组中;找最大值及其下标,这题目要求我们在数组中找出最大值及其下标;计算两数的和与差,这题目要求我们计算两个数的和与差;拆分实数的整数与小数部分,这题目要求我们将一个实数分解成整数部分,及小数部分;还有就是,这两周中,我的打字速度也进步了许多,以前不会用电脑画流程图,现在也会了。每次学到许多新的东西,我都会感到开心,并也感谢教我学习的人。

第五题:

            最小数放前最大数放后

设计思路:

                  1:看题目:主函数与函数声明,知道它要你干什么
2:理解与分析:在main中,给你一个数组,其中有十个整数 ,希望你通过调用函数,把最小数放前最大数放后
3:解答:
第一步:在input中,它用指针arr接收数组a[],用整数n接收数组的大小10,再用一个for循环,给数组a赋值
第二步:在max_min中,它用指针arr接收数组a[],用整数n接收数组的大小10,先定义并赋值两个整形变量,分别为:max=a[0],min=a[0];利用两个for循环,找到最大值最小值,再定义一个整型变量t,实现把最小数放前最大数放后
第三步:在output中,它用指针arr接收数组a[],用整数n接收数组的大小10,定义并赋值一个整型变量i =0,再用一个for循环,将数组a[]中的元素输出

流程图:

实验代码:

void max_min(int *arr,int n)
{
int t,s,x=0,y=0,i,min,max;
min=arr[0];max=arr[0];
for(i=0;i<n;i++)
{
if(min>arr[i])
{
min=arr[i];
x=i;
}
}
t=arr[0];arr[0]=arr[x];arr[x]=t;
for(i=0;i<n;i++)
{
if(max<arr[i])
{
max=arr[i];
y=i;
}
}
s=arr[n-1];arr[n-1]=arr[y];arr[y]=s;
}
void input(int *arr,int n)
{
int i;
for(i=0;i<n;i++)
scanf("%d",&arr[i]);
}
void output(int *arr,int n)
{
int i;
for(i=0;i<n;i++)
printf("%3d",arr[i]);
}

错误信息:

                    1.输出时:printf("  %d",arr[i]);
2.找最大值与最小值时,只用一个for循环

改正方式:

                    1.printf("%3d",arr[i]);
2.找最大值与最小值时,只用两个for循环,分别.找最大值与最小值

小结:

            “  %d”与“%3d”不同,一个是前面空两格在输出,一个是元素输出占3个字符宽

第六题:

             指针选择法排序

设计思路:

                  1:看题目:主函数与函数声明,知道它要你干什么
2:理解与分析:在main中,给你一个数组,其中有十个整数 ,希望你通过调用函数,将10个数进行由大到小的排序输出
3:解答:
第一步:定义t,i=0,j=i+1,max;其中t记录最大值下标,i用于选择法排序中外层for循环,而(i+1)表示进行到了第几轮交换,j用于选择法排序中内层for循环,表示x[i]后面元素的下标,max用于储存最大值
第二步:进入第一个for循环:将max,t初始化,max=x[i]; t=i;
第三步:进入第二个for循环:判断max<x[j]?若成立:max=x[j];t=j;
第四步:离开第二个for循环后,判断t!=i?若成立:max=x[t];x[t]=x[i];x[i]=max;找到了最大值,并把它放在了第一,之后就重复第二步到第四步,直到跳出第一个for循环

流程图:

实验代码:

 void sort(int *x,int n)
{
int t,i,j,max;
for(i=0;i<(n-1);i++)
{
max=x[i];
t=i;
for(j=i+1;j<n;j++)
{
if(max<x[j])
{
max=x[j];
t=j;
}
}
if(t!=i)
{
max=x[t];x[t]=x[i];x[i]=max;
}
}
}

错误信息:

第七题:

            判断回文字符串

设计思路:

                  1:看题目:主函数与函数声明,知道它要你干什么,了解“回文”是指顺读和倒读都一样的字符串
2:理解与分析:在main中,给你一个字符串s,要你判断它是不是回文
3:解答:
第一步:在main中,定义一个数组s[MAXN]
第二步:在palindrome中,指针s接收数组s,再定义i,n,k,j,其中,n=strlen(s),i=0,j=n-1
第三步:再利用一个for循环,条件1:i=0,j=n-1;条件二:i<j;条件三:i++,j--
第四步:在for循环中,判断:s[i]!=s[j],若成立,break;反之,继续
第五步:判断i<j?成立:return false;反之:return true;

流程图:

实验代码:

bool palindrome( char *s )
{ int i,n,k,j;
n=strlen(s);
i=0,j=n-1;
for(i=0,j=n-1;i<j;i++,j--)
{
if(s[i]!=s[j])
{
break;
}
}
if(i<j)
return false;
else
return true;
}

错误信息:


第八题:

             使用函数实现字符串部分复制

设计思路:

                  1:看题目:主函数与函数声明,知道它要你干什么,希望你写一个函数,实现字符串部分复制
2:理解与分析:在main中,给你一个字符串t,要求你从第m个字符开始的全部字符复制到字符串s中
3:解答:
第一步:在strmcpy中,用指针t接收字符串t,用指针s接收字符串s,用m接收main中m(从第几个数开始复制)
第二步:定义i,j,n;其中i,j用于循环嵌套,n统计字符串s长度
第三步:调用函数strcpy,将t全部复制到s中,再调用函数strlen,统计字符串s长度,并赋值给n
第四步:再用两个for循环,实现数组s[]向左移动的单位为m-1,其一:for(i=m-1;i>0;i--);其二:for(j=i;j<n;j++);在里面为:s[j-1]=s[j];
第五步:令s[n-m+1]等于'\0',代表结束,完成了从第m个字符开始的全部字符复制到字符串s中

流程图:

实验代码:

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';
}

错误信息:

                    没写s[n-m+1]='\0'

改正方式:

                     加上s[n-m+1]='\0'

小结:

             字符串后面都有一个'\0'

.托管截图及网址

表格:

作业点评:

辛静瑶:http://www.cnblogs.com/X-JY/

李伍壹:http://www.cnblogs.com/chenxidream/

姜健:http://www.cnblogs.com/jj990519/

陈天胤:http://www.cnblogs.com/cty-1/

李新华:http://www.cnblogs.com/Lixinhua18/

yuan的第二次随笔的更多相关文章

  1. 20155301-滕树晨 第二次随笔作业--从现有技能获取的经验应用于JAVA中

    第二次随笔--从现有技能获取的经验应用于JAVA中 你有什么技能比大多人(超过90%以上)更好? 这个想了半天,有一个是我乒乓球还是比较擅长的,在学校里可能比百分之90的人要强,在外面肯定是不如了.再 ...

  2. linux-0.11分析:boot文件 setup.s 第二篇随笔

    boot文件 setup.s 第二篇随笔 参考 [github这个博主的][ https://github.com/sunym1993/flash-linux0.11-talk ] 中断获取光标的位置 ...

  3. 寒假作业第二篇随笔(A+B)

    Github链接:https://github.com/heihuifei/object-oriented A+B Format (20) Calculate a + b and output the ...

  4. fist-冲刺第二天随笔

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE1 这个作业要求在哪里 https://edu.cnblogs.com/campus/fz ...

  5. CSAPP 第二章随笔

    类型转换问题 (1)int -> short 二进制位高位截断,低位保持不变 (2)同类型 unsign -> sign 记住二进制位是不变的 (3)P101页提到的编译器乘法优化问题,一 ...

  6. 第一次c++团队合作项目第二篇随笔

    随着时间的推移,项目也逐渐展开.我的地图也通过按钮的拼接完成了一小部分.这部分我是用了QT上的按钮类来实现的.接下来就是给按钮贴上图片,然后最重要也是最困难的是实现参数的传递,如何实现点击一个英雄或小 ...

  7. “希希敬敬对”队软件工程第九次作业-beta冲刺第二次随笔

    队名:  “希希敬敬对” 龙江腾(队长) 201810775001 杨希                   201810812008 何敬上 201810812004 今日讨论会议照片一张: 每个人 ...

  8. 《编写可维护的JavaScript》——JavaScript编码规范(三)

    啦啦啦啦啦,今天第二篇随笔\(^o^)/~ ////////////////////////////////正文分割线////////////////////////////////////// 直接 ...

  9. [译]LINT TO SQL 介绍(数据库查询) - Part.3

    出处:Linq To Sql (Part.3 – Querying our database) 术语表 Built-in:内置的 Clause:子句 Debugger:调试器 Object Relat ...

随机推荐

  1. binlog的原理

  2. 【Maven】 Eclipse使用Maven创建Java Web 项目(一)

    需求:创建一个Servlet版本3.0,Java版本是1.7的Maven Web项目 创建环境: 系统:window 7 软件:Eclipse.Maven 创建步骤: 1.使用eclipse工具创建m ...

  3. dataguard从库删除归档的例子

    deletearchlog.sh #!/bin/sh export PATH TABLE='v$archived_log' sqlplus -silent "/ as sysdba" ...

  4. [C++ Primer Plus] 第3章、处理数据(一)程序清单

    一.程序清单3.1(变量的一些知识点) #include<iostream> #include<climits> using namespace std; void main( ...

  5. 剑指offer(12)数值的整数次方

    题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 题目分析 这道题用传统的方法也可以做,只不过效率太低,这里我们用到快速幂的方法 ...

  6. 网站基础html javascript jquery

    第二章HTML HBuilder的使用 边改边看模式 chrome浏览器看. HTML的基本格式 超文本标记语言 HyperText Markup Language HyperText 超文本 Mar ...

  7. version control的简单认知

    version control 版本控制是一种记录文件或文件集随时间变化的系统,以便您以后可以调用特定版本.对于本书中的示例,您将使用软件源代码作为受版本控制的文件,但实际上您可以使用计算机上的几乎任 ...

  8. EJB到底是什么?

    EJB到底是什么?   1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"? 既然说了EJB 是为了"服务集群"和"企业 ...

  9. 深度学习标注工具 LabelMe 的使用教程(Windows 版本)

    深度学习标注工具 LabelMe 的使用教程(Windows 版本) 2018-11-21 20:12:53 精灵标注助手:http://www.jinglingbiaozhu.com/ LabelM ...

  10. JsonWebToken Demo(转)

    namespace TokenTest { using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System. ...