zoukankan      html  css  js  c++  java
  • 二学期第一次作业

    1

    1.计算两数的和与差
    (1)思路
    第一步:计算两数的和
    第二步:计算两数的差
    (2)代码

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

    无问题
    2.拆分实数的整数与小数部分
    (1)思路
    第一步:找出实数的整数部分
    第二步:用实数减去整数部分得出小数部分
    (2)代码

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

    无问题
    3.在数组中查找指定元素
    (1)思路
    第一步:使用循环在数组中查找指定元素
    第二步:若无指定元素则输出no found
    (2)代码

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

    无问题
    4.找最大值及其下标
    (1) 思路
    第一步:设立相应数组的指针。
    第二步:在循环中找出数组中最大值及其对应下标。
    第三步:运用指针传输下标并返回最大值。
    (2)代码

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

    无问题
    5. 最小数放前最大数放后
    (1)思路
    第一步:输入数组。
    第二步:在循环中找出最大值最小值。
    第三步:将最大值最小值分别和数组末值初值调换。
    第四步:输出数组值。
    (2)代码

    #include<stdio.h>
    void input(int *arr,int n)
    {
    	int i=0;
    	for(i=0;i<n;i++)
    	{
    		scanf("%d",&arr[i]);
    	}
     } 
    void max_min(int *arr,int n)
     {
     	int j=0,x=0,y=n-1;
     	for(j=0;j<n;j++)
     	{
     		if(arr[x]>arr[j])
     		{
     			int swap;
     			swap=arr[x];arr[x]=arr[j];arr[j]=swap;
    		 }
    	 }
    	 for(j=n-1;j>0;j--)
    	 {
    	 	if(arr[y]<arr[j])
    	 	{
    	 		int temp;
    	 		temp=arr[y];arr[y]=arr[j];arr[j]=temp;
    		 }
    	 }
     }
     void output(int *arr,int n)
     {
     	int k=0;
     	for(k=0;k<n;k++)
     	{
     		printf("%3d",arr[k]);
    	 }
     }
    

    两数交换时出错使得两数相等改正后正确
    6. 指针选择法排序
    (1)思路
    第一步:在循环中记录当前数组值及其下标。
    第二步:找出数组最大值并记录下标。
    第三步:调换当前数组值和最大值。
    (2)代码

    #include<stdio.h>
    void sort(int *x,int n)
    {
    	int j=0,k=0;
    	for(j=1;j<n;j++)
    	{
    		for(k=0;k<n-j;k++)
    		{
    			if(x[k]<x[k+1])
    			{
    				int swap;
    				swap=x[k];x[k]=x[k+1];x[k+1]=swap;
    			}
    		}
    	}
    }
    

    无问题
    7.判断回文字符串
    (1)思路
    第一步:记录字符串长度。
    第二步:判断长度单复数。
    第三步:在循环中对比首尾并返回相应值。
    (2)代码

    bool palindrome( char *p ){
    		int i,count=0,q;
    		count=strlen(p);
    		q=count/2;
    		for(i=0;i<q;i++){
    			if((*(p+i))!=(*(p+count-i-1))){
    				return(false);
    			}
    		}
    		if(i==q){
    			return(true);
    		}
    	}
    

    无问题
    8. 使用函数实现字符串部分复制
    (1 )思路
    第一步:记录字符串长度。
    第二步:判断是否为空串。
    第三步:截取原数组储存到新数组中。
    (2)代码

    	void strmcpy( char *p, int a, char *q ){
    		int i;
    		for(i=a;*(p+i-1)!='';i++){
    		  *(q+i-a)=*(p+i-1);
    		}
    		*(q+i-a)='';
    	}
    

    2

    1.总结两周的学习
    这两周学习了指针及其应用,对指针的应用还有一些模糊,指针的意义、定义符等已经学会。
    2.git地址(https://coding.net/u/lr572453251/p/lirui/git?public=true)

    3.点评同学
    {高立彬}(http://www.cnblogs.com/gao628526/p/8551285.html)
    {班庆泽}(http://www.cnblogs.com/wsbqz/p/8641741.html)
    {于耀松}(http://www.cnblogs.com/jsjyys/p/8589997.html)
    4.学习情况

  • 相关阅读:
    重新认识数据库的链接查询
    mysql删除一张表中的重复数据
    mysql数据库里复制一张表的SQL,报错 (1786
    case when的使用场景。
    python:浅析python 中__name__ = '__main__' 的作用
    Group(), Groups(),& Groupdict() 用法
    python re模块findall()详解
    练习题(第二模块...模块...选择填空)
    subprocess模块 sys模块
    json,pickle,shelve模块,xml处理模块
  • 原文地址:https://www.cnblogs.com/572453251asd/p/8646073.html
Copyright © 2011-2022 走看看