• 2018c语言第1次作业


    6-1 计算两数的和与差

    1.设计思路

    (1)主要描述题目算法
    第一步:把两个数的加减法分别赋给psum和pdiff。
    第二步:通过psum和pdiff的地址把值传回主函数。
    (2)流程图.(无)

    2.实验代码

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

    3.本题调试过程碰到问题及解决办法

    无错误.

    6-2 拆分实数的整数与小数部分

    1.设计思路

    (1)主要描述题目算法
    第一步:通过强制转换类型把x定义成整数获得整数部分。
    第二步:再把原来的x减去整数部分得到小数部分。
    第三步:通过地址把值传回主函数。
    (2)流程图(无)

    2.实验代码

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

    3.本题调试过程碰到问题及解决办法

    无问题.

    6-3 在数组中查找指定元素

    1.设计思路

    (1)主要描述题目算法
    第一步:先把-1赋值给t作初值。
    第二步:用for循环语句和if语句找出对应数最小下标,赋值给t。
    第三步:返回t。
    (2)流程图

    2.实验代码

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

    3.本题调试过程碰到问题及解决办法

    错误原因:if语句中把x赋值给list[j]中。
    改正方法:在if语句中多加一个等号。

    6-4找最大值及其下标

    1.设计思路

    (1)主要描述题目算法
    第一步:用for循环和if从句判断出最大值赋值给t。
    第二步:利用指针把最小下标传给主函数。
    第三步:返回t值。
    (2)流程图

    2.实验代码

    int fun(int *a,int *b,int n)
    {
      int j=0,t=a[j];
      for(j=0;j<10;j++)
      {
        if(a[j-1]<a[j])
        {
          t=a[j];
          *b=j;
        }
      }
      return t;
    }
    

    3.本题调试过程碰到问题及解决办法

    (无).

    6-最小数放前最大数放后

    1.设计思路

    (1)主要描述题目算法
    第一步:利用for循环向数组输入数值。
    第二步:利用for循环找出最大值最小值再进行交换。
    第三步:根据格式输出数组。
    (2)流程图



    2.实验代码

    void input(int *arr,int n)
    {
      int i=0,k=0;
      for(i=0;i<n;i++)
      {
       
        scanf("%d",*(arr+k));
        k++;
      }
    }
    void max_min(int *arr,int n)
    {
      int i,t=0,o=0,c,b;
      for(i=1;i<n;i++)
    	{
    		if(*(arr+i)<*(arr+o))  
    		{ 
    		o=i;
    		} 
    		
    	}
    		for(i=1;i<n;i++)
    	{
    		if(*(arr+i)>*(arr+t))  
    		{
    		t=i;
    		} 
    	}
    		c=*arr;
    		*arr=*(arr+o);
    		*(arr+o)=c;
    	  b=*(arr+n-1);
        *(arr+n-1)=*(arr+t);
        *(arr+t)=b;
    	}
    void output(int *arr,int n)
    {
      int i;
      for(i=0;i<n;i++)
      printf("%3d",*(arr++));
    
    }
    

    3.本题调试过程碰到问题及解决办法

    错误原因:输出的时候格式错误。
    改正方法:输出时前面加上3d调整格式。

    6-指针选择法排序

    1.设计思路

    (1)主要描述题目算法
    第一步:定义j,i,t的初值为零。
    第二步:用镶嵌for循环比大小调换数值。
    (2)流程图

    2.实验代码

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

    3.本题调试过程碰到问题及解决办法

    (无)

    6-1 判断回文字符串

    1.设计思路

    (1)主要描述题目算法
    第一步:用strlen求出符号长度n。
    第二步:for循环从左往右找两个符号不同 ,然后结束循环。
    第三步:利用for做标记,返回t值。
    (2)流程图

    2.实验代码

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

    3.本题调试过程碰到问题及解决办法

    错误原因:for循环的条件一开始出现错误。
    改正方法:用编程软件调试改正。

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

    1.设计思路

    (1)主要描述题目算法
    第一步:算出符号长度,if长度不够设为空串。
    第二步:够长度,从第七个符号用for循环开始替换。
    (2)流程图

    2.实验代码

    void strmcpy( char *t, int m, char *s )
    {
      int i,n,j;
       for(n=0;;n++)
    {
    	if(t[n]=='')
    	{
    		break;
    	}
    }
      if(m>n)
      {
        *s=NULL;
      }
      else
      {
      for(i=m-1,j=0;i<=n-1;i++)
      {
        s[j]=t[i];
        j++;
      }
      s[j]='';
      }
    }
    

    3.本题调试过程碰到问题及解决办法

    错误原因:复制过去的字符答案不对。
    改正方法:在字符里加上一个结束符。

    1总结两周里所学的知识点有哪些学会了?哪些还没有学会?

    我们这周学习了指针,数组和字符指针,指针一开始还还可以,后来字符指针就有点不太懂,不过通过做题慢慢的就理解了。

    2、将PTA作业的源代码使用git提交到托管平台上,要求给出上传成功截图和你的git地址。请注意git地址应是类似

    https://git.coding.net/yangzhiqun/cfsafa.git

    点评3个同学的本周作业(在作业中给出被点评同学博客的链接),并邀请3名同学点评你的作业,无点评作业(你的作业未被3人点评)/或者没有回复同学或老师的点评都倒扣该题分数。

    尧舜禹http://www.cnblogs.com/yaoshunyux/p/8641466.html
    徐铭博http://www.cnblogs.com/xmb1547828350/p/8597402.html
    于耀淞http://www.cnblogs.com/jsjyys/p/8589997.html

    4、请用表格和折线图呈现你本周(3/12 8:00~3/26 8:00)的代码行数和时间、博客字数和时间(3分)。

  • 相关阅读:
    在firefox里面查看AMF信息
    addFrameScript 修改自定义button 名字
    [转]游戏UI与flash 组件开发
    as 运算符 与 where T : class
    Process.Start传参
    站长工具
    SaveFileDialog使用方法
    iis admin service 无法设置 因为不是服务器?
    将文件夹层次显示在treeview控件中
    磁盘fat32转NTFS
  • 原文地址:https://www.cnblogs.com/12138-/p/8638784.html
Copyright © 2020-2023  润新知