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

一、PTA实验作业

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

1.本题PTA提交列表

1235550-20171210172808333-226898103.png

2.设计思路

1235550-20171210180428786-1193928840.png

3.代码截图

1235550-20171210173616458-1393520900.png

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

1235550-20171210191024318-950507412.png

当时写是认为当字符串中的一个字符为空格时,只要其两边的字符不为空格,那就可以算是一个单词了,调试发现用多个空格隔开单词时它就不算进单词个数里了。调试之后把条件改为,当字符串中一个字符为空格时,只要它的下一个字符不为空格或结束符时,单词个数加一。正确通过。

题目2:7-3 找最长的字符串

1.本题PTA提交列表

1235550-20171210180704411-1280090637.png

2.设计思路

1235550-20171210183011036-245089056.png

3.代码截图

1235550-20171210183056021-917653365.png

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

1235550-20171210194258880-29891723.png

本题错误不太明显,是在同学指导下才发现了问题所在。问题就是找出最长单词后没有结束符,输出不正确。加上结束符即可。

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

1.本题PTA提交列表

1235550-20171210183236615-1512358073.png

2.设计思路

1235550-20171210185738083-1645531655.png

3.代码截图

1235550-20171210183339865-525252752.png

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

1235550-20171210195129958-404237268.png

这题是范围不够大,统计不完全,将字符串的长度从80改为81之后问题得到解决。

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

1235550-20171210210916005-598764743.png

三、同学代码结对互评

7-1代码截图

我的

1235550-20171210200239036-404380356.png

吴军霖的

1235550-20171210200614552-879479173.png

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

军霖同学的代码只用了一个变量来对进制转换进行运算,而我的用了两个,显而易见的,他的代码比我的更为简便,而且思路极为清晰,而我的则是给人一种走一步算一步的感觉。相较之下,他的代码显然更能让人接受。

四、本周学习总结

1.你学会了什么?

1.1指针变量如何定义

定义指针变量要使用指针声明符*,如int i,*p
int *p 代表指向整型变量
char *p 代表指向字符型变量
float *fp 代表指向单精度实型变量
double *dpl 代表指向双精度实型变量

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

(1)指针+一个整型常量
(2)不能

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

1235550-20171210202204974-1305142492.png

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

1235550-20171210205431130-1074722562.png

指针变量做函数形参:void splitfloat(float x,int *intpart,float *fracpart)
实参传地址,用地址表示:splitfloat(x,&intpart,&fracpart);
指针变量做函数形参可以返回多个结果

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

#include<stdio.h>
void bubble(int *a,int n){
int i,j,c;
for(i=0;i<n-1;i++)
 for(j=0;j<n-i-1;j++){
    if(*(a+j)>*(a+j+1)){
    c=*(a+j);
    *(a+j)=*(a+j+1);
    *(a+j+1)=c;}
 }
}
int main(){
int i,n;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++) scanf("%d",&a[i]);
bubble(a,n);
for(i=0;i<n;i++) printf("%d ",a[i]);
return 0;
} 

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

int a[10],i,*p;
p=a;
for(i=0;i<10;i++)
*(p+i)=i;
或者
int a[10],i,*p
p=a;
for(i=0;i<10;i++)
*p=i;

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

char *p,str[3]={abc};
p=str;
初始位置str[0]

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

1235550-20171210204149224-1064616723.png

指针能够直接对地址内的元素进行操作;
指针表示字符,字符不会被覆盖。

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

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

(1)题目

1235550-20171210204513411-893463267.png

(2)解析

c选择中的*&point不是地址。

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

(1)对指针运用不熟悉
(2)指针与数组的互换与表示方法掌握不好
(3)对于指针作为函数形参的应用还不熟悉
打算:多做相关题目,反复阅读书上关于这些内容的部分。

3.数组上机考试小结

3.1 那题错了,请罗列?

6-1 数组循环右移
7-3 jmu-c-输出字符间的字符子串

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

如题6-1

1235550-20171210205904536-1221307624.png

想法过于简单,没有真正读通题目,其实其他的题目也都不怎么会,至于原因,不外乎是平时敲的代码不够多,代码阅读量也不足。应该听从老师的意见,当一道题目僵持了太久,应向同学求助,适当借鉴同学的代码,而不能钻牛角尖。
posted on 2017-12-10 21:10  lyzzzzzz 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/luyongzhi/p/8017738.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值