zoukankan      html  css  js  c++  java
  • C语言博客作业--字符数组

    一、PTA实验作业

    题目1:7-2 统计一行文本的单词个数

    1. 本题PTA提交列表

    2. 设计思路

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明。
    第一次我以为最后的句号不算单词,后来找做对的同学用不同的几组数据试了一下才知道句号也算单词,然后又是段错误,我就把开始定义的数组长度弄长点就过了

    题目2:7-6 Jack cheng的烦恼2

    1. 本题PTA提交列表

    2. 设计思路

    int n,i,j,flag=0;
    输入n的值
    char bra[n];
    输入数据
    i for 0 to n-1
    if 为左括号,变为字符0
      j for 0 to n-1 
        if  为右括号,变为字符0,跳出循环
    	end
    end
    大括号处理方法同上
     i for 0 to n-1//遍历数组,若不全为0,则未完全匹配
     if 不为0,flag=1
     if flag=0 输出True
     else 输出false
    

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明
    开始我的思路是用一个标记遇到左括号就自增,遇到右括号就自减,最后判断该标记是否为0,后面发现这样不能正确配对,然后看了同学的思路,重新设计了一个思路

    题目3:7-10 正整数A+B

    1. 本题PTA提交列表

    2. 设计思路

    	char A[80],B[80];
    	int i,j,flag1=0,flag2=0,x=0,y=0,k=0;
    	输入加数和被加数
    	历数A,B字符个数i,j
    	 i for i-1 to 0
    	 if A[i]不为数字,flag=1;跳出循环
    	 x=x+(A[i]-'0')*pow(10,k++);//将字符型数字转为整型 
    	 if x不在1~1000内 flag1=1;//界定范围
    	 k=0
    	 B数组处理同上
    	 if flag1=0且flag2=0  正常输出 
    	  else if  flag1=1且flag2=0
    	左边不正常输出 
    	else if  flag1=0且flag2=1
        右边不正常输出
    	else
    	全不正常输出
    

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明
    一开始没有看到数有范围,所以做的时候没给它界定范围,后来用临界条件试的时候发现问题,又仔细看了题目才恍然大悟

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

    三、同学代码结对互评

    1.互评同学名称
    张志鑫
    2.我的代码、互评同学代码截图(此处截图核心代码就好,不一定截图全部代码,图上指明是谁的代码。)
    我的代码:

    张志鑫的代码:

    3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
    这题原先他是错的,我帮他改了一下

    他的思路就是先把第一行字符串给str2,记下他的长度,然后下面每一行字符串记下长度后与str2比较,如果比str2长,那么就将这个字符串赋给str2
    他这个思路有点类似找最大值,思路很简单,就是麻烦点

    四、本周学习总结
    1.你学会了什么?

    1.1指针变量如何定义(设计代码可以用markdown代码符号渲染)?

    int *p
    char *p
    float *p
    double *p
    

    1.2 指针加法运算运用在哪种情况,2个指针变量能否相加?
    数组中,比如int *p,a[10];p=a,这时p可以加上整型数,p+1,就是a[1]的地址,.指针之间可以相减,但不可以相加,两个同一类型的指针变量是可以相减的,他们的意义表示两个指针指向的内存位置之间相隔多少个元素

    1.3 指针不赋初值,直接使用,会出现什么情况,请用DEVC验证,并截图展示?

    1.4 课堂派上关于分离浮点数的整数部分和小数部分那题,请用DEVC验证实现,并在此贴图展示,同时说明哪句是指针变量做函数形参,函数实参应该怎么表示。指针变量做函数形参有什么用处?

    1.5 请把课本的冒泡排序的函数改成指针变量做形参格式,并把代码写在底下,注意用markdown语法渲染。

    void bubble(int *p,int n)
    {
    	int i,j,t;
    	for(i=1;i<n;i++)
    	for(j=0;j<n-i;j++,p++)
    	if(*p>*(p+1))
    	{
    		t=*p;
    		*p=*(p+1);
    		*(p+1)=t;
    	}
    }
    

    1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?

    int a[10],*p;
    p=a;
    

    p表示a[0],(p+1)表示a[1]以此类推

    1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?

    char *p;
    char str[10] = "afjkfdhsjk";
    p = str;
    

    初始位置指向字符串的首个字符

    1.8 利用字符指针操作字符串,如设计函数实现字符串连接,请在此贴图展示代码。说明指针表示字符的方法好处是什么?

    #include <stdio.h>
    #define MAXN 80
    char *strmcat( char *str1,  char *str2 );
    int main()
    {
        char s[MAXN], t[MAXN];
        int m;
        gets(s);
        gets(t);
        strmcat(s,t);
        printf("%s
    ",s);
        return 0;
    }
    char *strmcat( char *str1,  char  *str2)
    {
       while(*str1)
        str1++;
       while(*str2)
       {
       	*str1=*str2;
       	str1++;
       	str2++;
       }
      *str1='';
    
    }
    

    可以直接对地址内的元素进行操作

    2.本周你不会内容有什么?

    2.1 课堂派错题罗列及如何订正。
    拆分实数的小数与整数部分那题,将指针赋了空指针,所以不能往里写东西

    2.2 其他不会的?打算怎么解决
    pta身份证那题有一个测试点不懂

    	int n,i,j=0,k,z,sum=0,flag1=0,flag2=0,a[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
    	scanf("%d",&n);
    	char Z,id[n*19],M[11]={'1','0','x','9','8','7','6','5','4','3','2'};
    	getchar();
    	for(i=1;i<=n;i++)
    	{
    	    j=0;
    		flag1=0;
    		flag2=0;
    		Z=0;
    		z=0;
    		sum=0;
    		while((id[j]=getchar())!='
    ')
    		{
    			if(id[j]<'0'||id[j]>'9')
    			flag2=1;
    			j++;
    		}
    		Z=id[j-1];
    		if(flag2==0)
    		{
    		for(k=0;k<17;k++)
    		sum=sum+a[k]*(id[k]-'0');
    		z=sum%11;
    		}
    		if((Z!=M[z])||flag2==1)
    		{
    		    flag1=1;
    			for(k=0;k<18;k++)
    			printf("%c",id[k]);
    			putchar('
    ');
    		}
    		
    	}
    	if(flag1==0)printf("All passed");
    	return 0;
    

    3.数组上机考试小结

    3.1 那题错了,请罗列?
    除了ip地址转换那题

    3.2 错题如何订正,为什么错了?
    6-1

    6-2

    7-2

    7-3

    7-4

  • 相关阅读:
    _getch()函数的一些使用方法
    键盘敲击(keyboard hit)
    计时 GetTickCount() 函数的作用和用法
    1
    关于COLORREF的定义及用法
    C++字符串大小写转换的库函数
    数楼梯(斐波那契数列+高精度)
    回文数(内含高精度加法,字符串是否为回文的判断)
    最短路径Dijkstra算法
    经典八大排序
  • 原文地址:https://www.cnblogs.com/hbw985609191/p/8010996.html
Copyright © 2011-2022 走看看