• 第一次作业


    第一题:
    代码:
    void sum_diff( float op1, float op2, float *psum, float *pdiff )
    {
    *psum=op1+op2;
    *pdiff=op1-op2;
    return 0;
    }
    思路:
    第一步:使用指针将所求量代入函数
    第二步;按题目要求进行运算
    第三不:返回主函数
    问题:

    第二题:
    代码:
    void splitfloat( float x, int *intpart, float *fracpart )
    {
    *intpart=(int)x;
    *fracpart=(float)(x-*intpart);
    return 0;
    }
    思路:
    第一步:使用指针将所求量代入函数
    第二步:利用int函数将x强制转化,求出整数部分
    第三步:用将原数减去整数部分求出小数部分
    第四步:返回主函数
    问题:

    第三题:
    代码:
    int search( int list[], int n, int x )
    {
    int i, index;
    for(i = 0;i < n;i++ )
    {
    if(x==*(list+i) )
    {index = i;
    break;}
    else{
    index = -1;
    }
    }
    return index;
    }
    思路:
    第一步:使用指针将所求量代入函数
    第二步:创建for循环,实现查找
    第三步:利用if语句将数列中的数与所求数对比,找出结果
    第四步:返回主函数输出不同结果
    问题:

    流程图:

    第四题:
    int fun(int *a,int *b,int n)
    {
    int i = 0,max = *a;
    for(i = 0;i < n;i++)
    {
    if(max<*(a+i))
    {
    *b = i;
    max = *(a+i);
    }
    }
    return max;
    }
    思路:
    第一步:使用指针将所求量代入函数
    第二步:定义i,将max赋值
    第三步:利用for循环,将数列中的数与max比较找出最大值
    第四步:将最大值的下标赋值与指针b
    第五步:返回主函数:
    错误:

    流程图:

    第五题:
    代码:
    void input(int *arr,int n)
    {
    int g;
    for(g=0;g<n;g=g+1)
    scanf("%d",&*(arr+g));
    }
    void max_min(int *arr,int n)
    {
    int max,i=0,b;
    max=*(arr+i);
    for(;i<10;i=i+1)
    {
    if(*(arr+i)>*(arr+i+1))
    {
    max=*(arr+i);
    b=i;
    }
    }
    int min,j=0,c;
    min=*(arr+j);
    for(;j<10;j=i+1)
    {
    if(*(arr+j)<*(arr+j+1))
    {
    min=*(arr+j);
    c=j;
    }
    }
    int f,g,m=0;
    f=*(arr+0);
    *(arr+0)=*(arr+b);
    *(arr+b)=f;
    g=*(arr+n-1);
    *(arr+n-1)=*(arr+c);
    *(arr+c)=g;
    }
    void output(int *arr,int n)
    {
    int h;
    for(h=0;h<n;h=h+1)
    printf("%d",*(arr+h));
    }
    思路:
    void input(int arr,int n)
    第一步:使用指针将所求量代入函数
    第二步:利用循环将数列中的数带入
    arr
    void max_min(int *arr,int n)
    第一步:使用指针将所求量代入函数
    第二步:定义i,max,指针b
    第三步:利用循环找出最大值,利用b记录其下标
    第四步:定义j,min,指针c
    第五步:利用循环找出最小值,利用c记录其下标
    第六步:利用b和c,将首位与最小值交换,将末尾与最大值交换
    void output(int *arr,int n)
    第一步:使用指针将所求量代入函数
    第二步:定义h
    第三步:利用循环输出数列
    错误:

    流程图:


    第六题:
    代码:
    void sort(int *x,int n)
    {
    int i, j , t;
    for( j = 1; j <= n-1; j++)
    {
    for(i = 0; i <= n-j-1;i++)
    {if(*(x+i)<*(x+i+1))
    {
    t= *(x+i);
    *(x+i) = *(x+i+1);
    *(x+i+1) = t;
    }
    }
    }
    }
    思路:
    第一步:使用指针将所求量代入函数
    第二步:定义i,j,t
    第三步:建立双循环,利用冒泡排序法
    第四步返回主函数
    错误;

    流程图:

    第七题:
    代码:
    bool palindrome( char *s )
    {
    int i=0,n=0;
    for(;s[i]!='';i++)
    n++;
    for(i=0;i<=(n/2);i++)
    {
    if(s[i]!=s[n-i-1])
    return 0;
    }
    return true;
    }
    思路:
    第一步:使用指针将所求量代入函数
    第二步:定义i=0,n=0
    第三步:利用循环记录数列中有多少数目
    第四步:利用循环判断对应位置的字母是否相同
    第五步:若是返回true否返回flase
    错误:

    流程图:

    第八题:
    代码:
    void strmcpy( char *t, int m, char *s )
    {
    *s=NULL;
    int i,n=1;
    for(i=0;*(t+i)!='';i++)
    n++;
    if(m>=n)
    *s=NULL;
    else
    {
    for(i=m-1;i<=n-1;i++)
    s[i-m+1]=t[i];
    }
    }
    思路:
    第一步:使用指针将所求量代入函数
    第二步:将字符数组t中的元素复制到s上,然后判断*s的长度
    第三步:通过for循环将数组t[]中的从第m-1元素赋给数组s[]
    第四步:返回主函数
    错误:

    流程图:

    学习总结:
    这两周的学习中我初步学会了指针的用法,复习了主函数和调用函数的知识点,回顾了冒泡排序法。但对与利用指针复制数组,还没有掌握清楚。

    git上传:

    https://coding.net/u/jike1liuyu/p/ppp/git/blob/master/%E6%96%B0%E5%BB%BA%E6%96%87%E6%9C%AC%E6%96%87%E6%A1%A3.txt?public=true
    总结:


    评论:
    刘富垚:http://www.cnblogs.com/lhyyy/p/8619501.html
    刘炜旗:http://www.cnblogs.com/ryo-/p/8644256.html
    史泽文:http://www.cnblogs.com/shilcz/p/8611461.html

  • 相关阅读:
    分页存储过程
    WinForm中DataGridView显示更新数据--人性版
    char类型的说明
    代码创建数据库_表--SqlServer数据库
    单例设计模式
    c#中的正则表达式
    sessionStorage 和 localStorage
    图片懒加载插件lazyload.js详解
    git安装加操作(转)
    php获取数据转换成json格式
  • 原文地址:https://www.cnblogs.com/liuyuly/p/8645147.html
Copyright © 2020-2023  润新知