zoukankan      html  css  js  c++  java
  • C语言博客作业05指针

    1.本章学习总结(2分)

    1.1 思维导图

    1.2 本章学习体会及代码量学习体会

    1.2.1 学习体会

    我在C语言的学习过程中,意识到指针是相当重要的一部分,学好指针对C的学习有很重要的意义。
    指针和内存如果说内存相当于街道,那么地址就相当于位于街道中房子的房号。
    并且懂得了如何对指针初始化,赋值等。

    1.2.2 代码累计

    2.PTA总分(2分)

    2.1截图PTA中函数题目集的排名得分

    2.2 我的总分:110分。

    3.PTA实验作业(1分)

    3.1 PTA题目1

    藏尾诗
    本题要求编写一个解密藏尾诗的程序。

    3.1.1 算法分析

    定义char型a,b数组
    for循环
    输入第一行诗词
    j=strlen(a);计算歌词的长度
    b[i]=a[j-2];因为汉字占俩个字节
    b[i+1]=a[j-1];
    i=i+2;
    输出数组b

    3.1.2 代码截图

    3.1.4 PTA提交列表及说明

    Q1:出现错误是在汉字占用俩个字节这里

    4.大作业(5分)

    题目:实现小学四则运算。
    在函数那章,我们已经实现小学四则运算这份作业,现在要求大家把之前设计函数升级改造,原来的函数大家都是用全局变量实现不同函数参数传递,这次作业要求改地址传递,减少全局变量的使用。

    题目要求:
    题目有3个难度级别,分别为:
    第一级是1位数的一步加减乘除计算
    第二级是2位数的2步加减运算
    第三级是3位数的2步加减运算
    改进内容:

    1.构造字符数组存放算术表达式

    不管哪个级别的算式,请都生成一个字符数组存放。不管用户选择哪个级别题目,都能在表达式生成函数中生成一个算术式子。具体函数接口
    void CreateExp(char *exp,int level)
    {
    switch(level)
    {
    case 1:生成一位数一步加减式子,写入字符数组exp;
    case 2:生成2位数2步加减式子,写入字符数组exp;
    case 3:生成3位数2步加减式子,写入字符数组exp;
    }
    // 注意三位数随机数,应该也包含生成一位数,即用rand()%1000就可以。
    }

    2.表达式是否合法(选做)

    对于不合法或者超出该级别小学生学习范围的表达式,视为不合法,需重造一个。不合法表达式体现有除数为0的表达式、1,2级别中出现不能整除的除法表达式或其他不合法情况
    int IsExp(char *exp,int level)
    {
    }

    3.表达式运算

    根据字符表达式,能计算其结果。有能力同学深入研究表达式优先级。
    int ComputeExp(char *exp)
    {
    }
    这块代码可以参考这题做法:

    include <stdio.h>
    int main()
    {
    int m=0, sum=0;
    char c, oldc='+';
    do {
    c = getchar();
    if( c<='9'&&c>='0' )
    m = 10*m + c - '0';//1
    else
    {
    if( oldc == '+' )
    sum += m;
    else
    sum -= m;
    m = 0;//2
    oldc = c;
    }
    } while(c!='=');
    printf("sum=%d", sum);
    return;
    }

    4.1.改造函数介绍

    主要上述三个函数的改造说明

    1.函数1

    void CreateExp(char exp,int level)
    定义intx型变量n1,n2用于生成随机数;c用于生成四个数判断运算符
    定义char型变量op;
    switch level
    case 1
    srand 生成一位数 n1,n2 c
    switch(c)
    case 0:strcat(exp,"+");break;
    case 1:strcat(exp,"-");break;
    case 2:strcat(exp,"
    ");break;
    case 3:strcat(exp,"/");break;
    case 2
    同上
    case 3
    同上
    strcat(exp,"=");
    输出表达式的字符串exp

    3.函数3

    int ComputeExp(char *exp,int level)
    定义int型变量len
    strlen exp 赋值给len
    do
    op=getchar();
    if(op<='9'&&op>='0' )
    返回result的值

    4.4 改进大作业总结

    1.使用指针来传递数据,相对于全局变量来说在运算上比较不容易出现错误
    2.改进过程中遇到的问题较多,很多问题无法解决
    3.在这次的改进中我意识到自己的不足,在C的学习上我更应该努力的学习!

  • 相关阅读:
    游标cursor
    SQL: EXISTS
    LeetCode Reverse Integer
    LeetCode Same Tree
    LeetCode Maximum Depth of Binary Tree
    LeetCode 3Sum Closest
    LeetCode Linked List Cycle
    LeetCode Best Time to Buy and Sell Stock II
    LeetCode Balanced Binary Tree
    LeetCode Validate Binary Search Tree
  • 原文地址:https://www.cnblogs.com/jellysheep/p/10131886.html
Copyright © 2011-2022 走看看