• 第一次作业


    C高级语言第一次作业(1)
    6-1 计算两数的和与差
    1.主要描述题目算法
    第一步:根据题目来加减运算
    第二部:用指针来传递数据

    2.代码:

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

    3.指针在题目中的作用:
    op1代表a op2代表b,
    *psum代表sum *pdiff代表diff。

    6-2 拆分实数的整数与小数部分
    1.主要描述题目算法:
    第一步:先写出函数,将数据变为int型定义整数部分
    第二步:用传入数据减去int型数据定义为小数部分

    2.代码:

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

    3.指针在题目中的作用
    x为输入数
    *intpart取x整数部分
    *fracpart取输入数减整数的部分

    C高级语言第一次作业(2)
    6-1 在数组中查找指定元素:
    1.主要描述题目算法:
    第一步:设定指针
    第二步:在循环中找到相应值
    第三步:找到后返回值

    2.代码:

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

    3.流程图:

    4.遇到的问题:未遇到问题。

    6-2 找最大值及其下标:
    1.主要描述题目算法:
    第一步:设置指针
    第二步:在循环中找出最大值和下标
    第三步:利用指针输出结果

    2.代码:

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

    3.流程图:

    4.遇到的问题:未遇到问题

    C高级语言第一次作业(3)
    6-1 最小数放前最大数放后:
    1.主要描述题目算法:
    第一步:定义数组
    第二步:利用循环找出最大值和最小值
    第三步:将最大值和最小值利用指针交换
    第四步:输出结果

    2.代码:

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

    3.流程图:

    4.遇到的问题:未遇到问题

    6-2 指针选择法排序
    1.主要描述题目算法:
    第一步:设定数组
    第二步:找出数组最大值
    第三步:记录当前数组值
    第四步:调换当前数组值和最大值

    2代码:

    void sort(int *x,int n)
         {
            int j,i,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;}
         }
    

    3.流程图:

    4.遇到的问题:最大值和最小值排序错误
    解决办法:将大于号改为小于号

    C高级PTA第一次作业(4)
    6-1 判断回文字符串:
    1.主要描述题目算法:
    第一步:记录字符长度
    第二步:判断长度单复数
    第三步:利用循环对比首尾,输出结果

    2.代码:

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

    3.流程图:

    4.遇到的问题:未遇到错误。

    6-2 使用函数实现字符串部分复制
    1.主要描述题目算法:
    第一步:找出字符串长度
    第二步:判断字符串是否为空
    第三步:将原数组数据存到新数组中

    2.代码:

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

    3.流程图:

    4.遇到的问题:未定义出空字符
    解决办法:在循环结尾加上空字符

    附加题
    1.主要描述题目算法:
    第一步:获取字符串,将其传入函数。
    第二步:用for语句遍历,用if语句判断遍历字符是否为y,z,若不是则码值加二,若是则分别变为a,b。

    2.代码:

    #include<stdio.h>
    #define max 100
    void SE( char *);
    int main()
    {
        char name[max];
        gets(name);
        SE(name);
        printf("%s",name);
        return 0;
    }
    
    void SE (char *s)
    {
        for(;*s != '';s++)
        {
            if(*s == 'z'){
                *s = 'b';
            }else if(*s == 'y'){
                *s = 'a';
            }else{
                *s = *s + 2;
            }
        }
    } 
    

    3.流程图:

    4.结果:

    学习总结和进度
    1.总结两周里所学的知识点有哪些学会了?哪些还没有学会?
    学会了使用指针完成一系列问题。
    对于指针的使用还不是很熟悉
    2.将PTA作业的源代码使用git提交到托管平台上,要求给出上传成功截图和你的git地址。
    地址:https://git.coding.net/AssassinCreed/Devil-May-Cry.git
    截图:

    3.点评同学:
    丰大为:http://www.cnblogs.com/DavidPark/p/8551402.html
    顾家伟:http://www.cnblogs.com/qq807443119/p/8641932.html
    高立彬:http://www.cnblogs.com/gao628526/p/8551285.html
    4.表格和折线图:

  • 相关阅读:
    jq实现简单的二级联动下拉框
    jq实现多选框及反选
    用js和css实现选项卡效果+jq(2019-10-09)
    python 创建类的实例对象
    selenium——获取元素的尺寸、文本信息、元素的属性、元素是否可见
    selenium——表单嵌套
    selenium控制浏览器
    类的应用
    零散的python知识点
    安装python2、python3
  • 原文地址:https://www.cnblogs.com/nothingistrue/p/8646677.html
Copyright © 2020-2023  润新知