zoukankan      html  css  js  c++  java
  • C语言博客作业--一二维数组

    一、PTA实验作业

    题目一:7-5 数组循环左移

    1.本题提交列表

    2.设计思路

    定义四个整形变量n,m,j,k
    输入n,m的值
    if(m==0){
    定义一个数组c[n];
    按顺序给该数组赋值;
    按顺序输出数组c;
    程序结束。
    }
    if(m>n){
    定义一个数组c[n]
    依次输入该数组中的数;
    if(m%n==0){
    按顺序输出数组c中的数;
    程序结束。
    }
    else{
    定义一个数组d[n]
    for(i=0;i<n;i++) d[i]=c[(i+m%n)%n];
    按顺序输出数组d中的数;
    程序结束。
    }
    }
    定义两个数组a【n】,b【m-n】;
    按顺序输入数组a【n】中的n个数;
    按顺序输入数组b【m-n】中的m-n个数;
    按顺序输出数组b中的各个数;
    按顺序输出数组a中的各个数
    程序结束。
    

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明


    如图所示,问题考虑不全面,导致失分。
    将条件补齐后完成。

    题目二:7-8 加法口诀表

    1.本题提交列表

    2.设计思路

    定义五个变量repeat,n,j,m,i,k;
    输入repeat的值;
    for(k=1;k<=repeat;k++){
    输入n的值;
    定义一个数组number【n】;
    输出‘+’;
    for(i=0;i<n;i++){
    将i+1的值赋给number【i】;
    如果i=n-1,跳出循环;
    输出number【i】的值;
    }输出number【n-1】的值;
    for(i=0;i<n;i++){
    输出number【i】的值;
    for(j=0;j<=i;j++){
    把number[i]+number[j]的值赋给m;
    当j=i时,跳出循环;
    输出m的值;
    }输出m的值;
    }
    }
    程序结束。
    

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明


    忘记了repeat的用处以及之前没有明白输出格式,加上一个repeat条件的循环然后把n的输出放到循环中,在对中间的代码进行一些小改动就完成了,输出格式是问的同学。

    题目三:7-9 判断上三角矩阵

    1.本题提交列表

    2.设计思路

    定义七个变量repeat,n,i,j,k,count,m;
    输入repeat的值;
    for(i=1;i<=repeat;i++){
    输入n的值;
    定义一个矩阵a【n】【n】;
    按顺序输入矩阵中的各个数;
    当矩阵下三角(不包括对角线)中的所有数均为0时,输出YES;
    否,则输出NO;
    }
    程序结束。
    

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明


    每次输出要占一行,所以每个输出后加上换行符;
    在这里第一次接触段错误,是矩阵定义出了问题,应该把a【n-1】【n-1】改为a【n】【n】。

    二、截图本周题目集的PTA最后排名

    三、同学代码结对互评

    题目:7-5 数组循环左移

    我的代码:

    吴军霖的代码:

    互评:他的代码用了函数,极为简便,但是有点难懂,可能是他的学习进度比我快出太多,运用了一些我不知道的表示方法,相较而言我的代码有点复杂而且冗长,
    但是我还是比较喜欢我的代码。

    四、本周学习总结

    1.你学会了什么?

    1.1C中如何存储字符串?

    定义一个字符数组,用循环来输入该字符数组的各个字符
    如:char str[10]
    for(i=0;i<10;i++) scanf("%c",&str[i]);

    1.2字符串的结束标志是什么,为什么要结束标志?

    '';因为‘’可以用来控制字符数组的输入与输出,控制循环。

    1.3字符串输入有哪几种方法?

    三种:
    1.使用gets()直接输入整个字符串;
    2.定义数组和循环变量,用循环结构for(i=0;i<n;i++) str[i]=getchar()即可;
    3.while((str[i]=getchar())!=‘’);

    1.4数字字符怎么转整数,写个伪代码?

    定义整型变量number存放输入的数,i为循环变量
    定义字符数组str[10]存放字符串
    i=0
    while((str[i]=getchar())!=‘’)
    每次循环完i的值加一
    number=0
    for(i=0;str[i]!=‘’;i++)
    if(str[i]>=‘0’&&str[i]<=‘9’)
    number=number*10+str[i]-'0'
    输出number
    

    1.5 16进制、二进制字符串如何转10进制?写伪代码?

    16进制:

    定义整型循环变量i,k
    定义字符数组hexad[80],str[80]
    定义长整型变量number存放十进制数
    i=0
    while((str[i]=getchar())!=‘’)
        每次循环结束后i的值加一
    遍历数组hexad[i]
    k=0
    for(i=0;str[i]!=‘’;i++)
    字符数组str[i]输入的字符存在十六进制的字符
        数组hexad[k]存放str[i]的字符
    遍历hexad数组
    number=0
    for(i=0;hexad[i]!=‘’;i++)
        如果数组hexad存放0~9的字符
        number=number*16+hexad[i]-‘0’
        如果数组hexad存放A~F的字符
        number=number*16+hexad[i]-'A'+10
        如果数组hexad[i]存放a~f的字符
        numbe=number*16+hexad[i]-‘a’+10
    输出十进制的值number
    

    二进制:

    二进制数组a[n]
    for(i=0;a[i]不为‘’;i加一)
    n=n*2+a[i]-'0'
    输出n
    

    2.本周的内容,你还不会什么?

    不会的内容很多,具体就说不出来了,实在太多了,感觉现在学习很吃力。。

    3.期中考试小结

    3.1你认为为什么没考好?

    (1)基础差;
    (2)考试前没有做充足的准备,复习不到位;
    (3)考试时时间分配不合理,在分数少的选择题耗费了太多时间。

    3.2 罗列错题。

    3.3下半学期要怎么调整C的学习?

    • 预习作业要认真及时完成;
    • PTA上的题目争取全部完成,不懂的全部弄懂;
    • 课本要仔细认真的看,静下心来,总能看得进的;
    • 上机考试前认真复习,考试后认真总结;
    • 一定要花更多更多的时间在C语言上,时间不够就挤,总会有的。
  • 相关阅读:
    常用的清理 Kubernetes 集群命令
    mask彻底禁用systemctl服务
    ansibleplaybook指定role limit
    极速理解设计模式系列:16.迭代器模式(Iterator Pattern)
    极速理解设计模式系列:19.备忘录模式(Memento Pattern)
    极速理解设计模式系列:8.策略模式(Strategy Pattern)
    极速理解设计模式系列:6.适配器模式(Adapter Pattern)
    PostSharp AOP编程:2.PostSharp的OnMethodBoundaryAspect类基本组成
    极速理解设计模式系列:18.访问者模式(Visitor Pattern)
    极速理解设计模式系列:10.抽象工厂模式(Abstract Factory Pattern)
  • 原文地址:https://www.cnblogs.com/luyongzhi/p/7967224.html
Copyright © 2011-2022 走看看