码迷,mamicode.com
首页 > 编程语言 > 详细

C语言博客作业--字符数组

时间:2017-12-11 00:37:30      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:main   ++   code   运用   png   错误   参考   方法   二维   

一、PTA实验作业

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

1. 本题PTA提交列表

技术分享图片

2. 设计思路

     定义字符数组ch[1000],定义i用于循环,count用来数有几个单词,count1记录字符串有多长
     输入字符串,并将字符串存储在字符数组中
     如果ch[0]是空格,count=0
     否则count=1
     for i=0 to count1
        如果ch[i]是空格或逗号,并且它们的下一个字符是字母或数字
        count++
     end for
     输出count的值

3.代码截图

技术分享图片

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

技术分享图片
最开始是这几个测试点过不了,第一个测试点是正确的,后面两个测试点改了数组长度后就通过了,但是第一个测试点却变成了答案错误,而且不太理解到底错在哪,也不知道该往哪个方向去调试
技术分享图片

题目2:7-5 统计大写辅音字母

1. 本题PTA提交列表

技术分享图片

2. 设计思路

技术分享图片

3.代码截图

技术分享图片

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

最初的时候判断条件是ch[i]!=‘A‘&&ch[i]!=‘E‘&&ch[i]!=‘I‘&&ch[i]!=‘O‘&&ch[i]!=‘U‘时,count就加一,在这样的判断条件下,如果出现空格,那么count也会加一,而空格不是辅音字母,应该忽略不计

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

1. 本题PTA提交列表

技术分享图片

2. 设计思路

    定义两个字符数组c1[80],c2[80],定义i,j用于循环,flag1和flag2做是否为正整数的标记,num1为第一个正整数,num2为第二个正整数
    当getchar()!=‘\n‘时,
    c1[i]=getchar;i++
    end getchar
    c1[i]=‘\0‘
    gets(c2)
   for i=0 to c1[i]!=‘\0‘
     如果不是数字
          flag1=1
     否则
          将该数字字符转成数字
     end for
     如果num1的值不在1-1000内,
     flag1=0
     对字符数组c2[80]做同样的操作
     根据不同的flag1和flag2的值,输出相应的结果

3.代码截图

技术分享图片
技术分享图片

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

忽略了当数值不在题目要求范围内的情况,比如num1=0,num2=1001时,输出的应该都是问号,而我的代码输出的是1001,加上判断数字是否在题目要求范围的条件后就通过了

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

技术分享图片

三、同学代码结对互评

1.互评同学名称

沈梦婷

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

同学的代码

   #include<stdio.h>
int main()
{
    char a[1000];
    int i,count=0,flag=0;
    gets(a);
    for(i=0;(a[i])!=‘\0‘;i++)
    if(a[i]==‘ ‘) flag=0;
    else if(flag==0){
    flag=1;
    count++;
    }
    printf("%d",count);
    return 0;
} 

我的代码

   #include<stdio.h>
int main()
{
    char ch[1000];
    int i,count,count1;
    while((ch[i]=getchar())!=‘\n‘)
    i++;
    ch[i]=‘\0‘;
    count1=i;
    if(ch[0]==‘ ‘)
    count=0;
    else 
    count=1;
    for(i=0;i<=count1;i++){
    if((ch[i]==‘ ‘||ch[i]==‘,‘)&&(ch[i+1]>=‘a‘&&ch[i+1]<=‘z‘||ch[i+1]>=‘0‘&&ch[i+1]<=‘9‘)) 
    count++;}
    printf("%d",count);
    return 0;
 }

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

四、本周学习总结

1.你学会了什么?

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

   int a,*p;
   p=&a;

或者

    int a;
    int *p=&a;

1.2 指针加法运算运用在哪种情况,2个指针变量能否相加?

指针可以与整型数据相加
不能,2个指针变量相加是非法的

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

程序不能正常运行技术分享图片

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

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

   

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

   int a[8];
   int *p;
   p=a;

*p

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

   char *s="point";

初始位置在该字符串的首字符

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

好处:直接对地址内的元素进行操作

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

2.1 课堂派错题罗列及如何订正。

技术分享图片
第二空应该是p+n,当时在参考书上相似的内容,就直接把书本上的9写上去了

2.2 其他不会的?打算怎么解决

pta上字符数组的题目,有一些自己看的时候有点思路,但不知道该怎么写,有的是完全没有思路该怎么写,需要请教同学才能写出来。
身份证那题,刚开始不懂加权求和是什么意思,请教了同学后才知道。
对于还不会的题目,我想先自己再尝试着写一写,如果还是不会就上网查一下或者是请教同学。

3.数组上机考试小结

3.1 那题错了,请罗列?

jmu-c-二维数组转置并按列排序
IP地址转换
jmu-c-十进制转16进制

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

1.jmu-c-二维数组转置并按列排序

  1. IP地址转换
    订正
    技术分享图片
    二进制转换成十进制的方法错误
    3.jmu-c-十进制转16进制

C语言博客作业--字符数组

标签:main   ++   code   运用   png   错误   参考   方法   二维   

原文地址:http://www.cnblogs.com/a2017/p/8006963.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!