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

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

    1.1 思维导图

    1.2.1 学习体会

    指针的理解很抽象,对于指针的运用不太熟练,特别是指针很多时候是运用在函数里面,和函数混合起来运用,指针为参数时,就特别的乱,不知道怎么传参到函数,然后函数的传参也没学好。所以导致指针传参时不知道怎么传,传什么东西进去。

    1.2.2 代码累计

    2.PTA总分(2分)

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

    2.2 我的总分:

     100

    3.PTA实验作业(1分)

    3.1 PTA题目1

    N个字符串按从小到大排序的冒泡排序法

    3.1.1 算法分析

    char a[100][12];      定义数组长度

    getchar();         读取下一个字符

    int b;           定义中间变量 

    b=strcmp(a[j],a[j+1]);    比较字符串大小长度

    if(b>0)          a【j】的长度长于a【j+1】

    a【j】<——>a【j+1】   对换

    for(i=0;i<n;i++)
    puts(a[i]);          输出变换后的数组

    3.1.2 代码截图

    3.1.4 PTA提交列表及说明

    在devc上调试对了才提交的,后面提交的时候把百度来的一个语句也复制上去了,后面编译错误。首先是定义的时候遇到问题,我一开始想的比较简单,就是把这个题目当做一维数组来处理,我觉得行是变量,然后每行有一串字符串,后面发现这样出来的结果乱七八糟,后面去百度找答案,才用了二维数组去做。自己用的输入是scanf(“%s”,a[i])这样的,后面看百度的答案用的是gets(a[i]),了解了gets函数,可以无限读取,不会判断上限,以回车结束读取,我就用上去了。还有后面的输出,我一开始就是用的普通的printf,这样还要自己打回车符。后面用了puts解决了这个问题。有了解到puts(a)==printf("a ")

    4.大作业(5分)

    题目:实现小学四则运算

    1.伪代码介绍函数思路


    void mathcaculate 函数
    各种int 各种 double
    printf                输出选择界面
    scanf("%d",level)            读者输入等级选择
    if(level!=1&&level!=2&&level!=3)   判断等级选择是否出错
    printf(" 你的输入有误,结束计算");  错误输入提示
    return 错误输入之后结束计算
    printf(" ");
    printf(" 误差允许在0.01之内 ");     给予友好提示
    CreateExp(level);         调用函数,但是我不太会使用exp参数,所以这里只用了level
    scanf("%d",&response)      读者输入答案
    if if(s-response<=0.01)       答案符合要求
    rightMessage( );         进入正确提示函数
                    否则进入错误提示函数
    s=0;              初始化系统随机生成的算式的结果
    system("pause");
    system("cls");           清屏+暂停函数
    if(i==n)
    break;                当i=n时直接跳出循环
    printf(" 1:继续 2:退出 请选择:");      友好提示
    printf(" ");
    scanf("%d",&flag);        输入是否继续
    printf(" ");
    if(flag==1)           继续
    continue;
    else
    {
    printf("系统结束运算 ");        系统结束运算
    break;
    }
    }
    percent=right*1.00/((right+wrong)*1.00)*100;    正确率计算
    printf(" 你的正确率为%.2f ",percent);

    2.函数截图

    2.函数2

    • 伪代码介绍函数思路
      • void rightMessage( )函数 
        switch ( rand() % 4 )                                     随机生成鼓励语句
        {
        case 0:
        printf( " 你可真是个小机灵鬼! " ); break;
        case 1:
        printf( " 你真优秀! " );break;
        case 2:
        printf( " 真棒的回答! " );break;
        case 3:
        printf( " 这题对了别骄傲,还有下一题! " );break;
        void wrongMessage( void )  提示错误语句
        {
        switch ( rand() % 4 )
        {
        case 0:
        printf( " 答案是%.2f 这题错了,继续努力吧! " ,s); break;
        case 1:
        printf( " 答案是%.2f 错了,你能再做一题吗? ",s );break;
        case 2:
        printf( " 答案是%.2f 这题错了别沮丧,还有下一题! ",s );break;
        case 3:
        printf( " 答案是%.2f 你做错了哦! ",s );break;
        }
        }

    • 截图函数代码。

    3.函数3

    void createExp(int level)函数

    各种int定义

    switch (level)                判断等级

    case 1: m=10;n=4;k=3;break;                                m用于产生随机数

    case 2:m=100;n=2;k=5;break;         n用于产生运算符

    case 3: m=1000;n=2;k=5;break;         k用于控制循环

    然后循环产生随机数放入数组str

    y=rand()%n;

    switch(y)

    {

    case 0:printf("+");s=s+str[j-1];break;

    case 1:printf("-");s=s+str[j-1];break;

    case 2:printf("*");s=str[j-1]*str[j+1];break;

    case 3:printf("/");s=str[j-1]/str[j+1];break;

    }

     这个有bug。但是不知道怎么改。。

    4.3 与原有函数代码比较

    改造前函数1和改造后的函数1

    等级函数,改造前用了三个函数来区分三个等级,改造之后只用了一个函数就包含了三个等级的运算。其他好像没什么变动。。。

    4.4 改进大作业总结

    上一次的作业主要是卡在各种非法输入上,然后解决了大部分,一些非法输入还是没解决,这一次是卡在了三个等级封装在一个等级函数上,每次要不多输出了一个运算符,还有就是改动之后呢,运算符是不会多出来,但是算式的随机数每次都出来的是0,而且计算也不太对,之前的话虽然多出来一个运算符,但是结果还是对的,之前出来的是1+5/=这样的答案是6。改了好多次bug总算少了一点。

  • 相关阅读:
    数据结构和算法(Golang实现)(14)常见数据结构-栈和队列
    数据结构和算法(Golang实现)(20)排序算法-选择排序
    数据结构和算法(Golang实现)(18)排序算法-前言
    数据结构和算法(Golang实现)(22)排序算法-希尔排序
    数据结构和算法(Golang实现)(21)排序算法-插入排序
    数据结构和算法(Golang实现)(27)查找算法-二叉查找树
    关于SpringMVC映射模型视图的几点小事
    关于spring中事务管理的几件小事
    关于spring中AOP的几件小事
    关于spring中bean配置的几件小事
  • 原文地址:https://www.cnblogs.com/yvvq/p/10133670.html
Copyright © 2011-2022 走看看