zoukankan      html  css  js  c++  java
  • C语言第九次博客作业--指针

    一、PTA实验作业

    题目1:6-5 判断回文字符串

    1.本题PTA提交列表

    2. 设计思路

    函数传入地址,给形参s
    定义flag,i为循环变量,k为字符串数。
    k=strlen(s)-1。
    for i=0 to i<=k
        如果s[i]!=s[k],则flag=1。
            i++,k--
    end
    如果flag==0
        则返回true
    其他
        则返回false
    

    3.代码截图

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

    • 1.k的值没有算对。

      解决方法:将k=strlen(s)改为k=strlen(s)-1。

    题目2:6-8 使用函数实现字符串部分复制

    1.本题PTA提交列表

    2. 设计思路

    3.代码截图

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

    • 无。

    题目3:6-11 报数

    1.本题PTA提交列表

    2. 设计思路

    定义环境变量i,j=0,count=0,length,数组circle[MAXN],temp[MAXN]
    for i=0 length=0 to  i<n
      circle[i]=i+1
      i++,length
     end
    while(length>0)
      for i=0 to i<n
        若circle[i]不等于0
           则count++
        否则continue
        若count%3==0
           则temp[j]=circle[i]
           j++,circle[i]=0,length--
    end
    for i=0 to i<n
      j=temp[i]
      out[j-1]=i+1
    end
    

    3.代码截图

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

    • 对数组角标和对应的号码在做题过程中有点混乱。

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

    三、阅读代码

    代码一


    本题对字串的处理通过j=i,k=0;str1[j]==str2[k];j++,k++,以及!str2[k+1]的判断,十分的巧妙。

    代码二

    #include <stdio.h>
    #define MAXN 10
    
    int ArrayShift( int a[], int n, int m );
    
    int main()
    {
        int a[MAXN], n, m;
        int i;
    
        scanf("%d %d", &n, &m);
        for ( i = 0; i < n; i++ ) scanf("%d", &a[i]);
    
        ArrayShift(a, n, m);
    
        for ( i = 0; i < n; i++ ) {
            if (i != 0) printf(" ");
            printf("%d", a[i]);
        }
        printf("
    ");
    
        return 0;
    }
    int ArrayShift( int a[], int n, int m ){
    	int i,j,temp;
    	for(i=1;i<=m;i++){
    		temp=a[n-1];
    		for(j=n-1;j>0;j--){
    			a[j]=a[j-1];
    		}
    		a[0]=temp;
    	}
    	return 0;
    }
    

    这和我之前用的一下子都移动的方法不同,相比之下这个代码更简洁且可读性更高而且不用考虑特殊的输入情况,值得学习。

    四、本周学习总结

    1.自己总结本周学习内容。

    • 1.学会指针的基本使用。
    • 2.懂得了数组和指针的关系和联系。
    • 3.学会了字符串的一些函数。
    • 4.使用指针,减少了数组题目的代码长度。

    2.罗列本周一些错题。

    • 1.
      一开始指针概念不熟悉,对指针的概念比较模糊。
    • 2.
      *a指的是指向地址的值。
    • 3.
      调用函数时,只有给出数组首地址即可。
  • 相关阅读:
    查看网络接口
    httpd sshd firewalld 很多服务后面的d是什么意思
    CentOS7入门
    1005:取余,循环,找规律
    1006 Tick and Tick
    cv.Mat 与 .txt 文件数据的读写操作
    禁止别人用QQ号搜索到你,同时告诉你如何破解
    LaTex初学
    github上对一些名词的理解(之如fork)
    CCF Z字形扫描
  • 原文地址:https://www.cnblogs.com/oracler0103/p/8037840.html
Copyright © 2011-2022 走看看