一、PTA实验作业

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

1. 本题PTA提交列表

2. 设计思路

定义一个长度为1000的字符数组str[1000]
在定义 i=0,cnt=0;cnt用来记录单词的个数
while str[i]='\n'既输入回车时结束字符的输入
str[i]=0;设定结束的标志
for i=0 to str[i]='\0'
if str[i]!=' '&&str[i+1]==' ';如果这个字符不为空格,并且下一个字符为空格。
cnt++;让cnt+1;
if str[i]!=' '&&str[i+1]=='\0'如果此字符为最后一个字符且不为空格结尾。
cnt++;
输出 cnt 的值表示单词个数。

3.代码截图

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

一开始代码是这样的,一开始没有考虑到结尾是空格的情况,以为cnt 只会记录到

倒数第一,然后让最后输出时cnt 在加上1即可。结果是错的。

发现这个问题后我多加了一个if 语句就解决末尾为空格的问题,和全部为空格的问题。

可是仍然出现了段错误和运行超时的问题。

后来我增加了数组的长度就解决了。

题目2:查验身份证

1. 本题PTA提交列表

2. 设计思路

首先定义变量 n z=0 sum =0 sum计算前17位的加权求和,z是sum %11 后的数
定义字符数组 m [12] ={"10X98765432"};和数组a [17] ={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
a数组用来表示权数。
输入n的值, 表示判断的身份证的个数。
定义 flag=2 用来判断身份证号的准确性
定义一个长度为18的字符数组 line[18]
while (n) 即当n等于0的时候结束循环
getchar () 来存放之前输入完n之后的回车。
for i=0 to i=17
输入line [i]的值
for i=0 to i=17
if line[i] 不为数字,
则,flag=0;
if (flag) 当flag 不为0 的时候
sum=sum+(a[i]*(line[i]-'0')); 计算加权求和的总数sum
z=sum%11,
if (line[17]!=m[z]), 说明校验码不正确
flag=0;
if (flag==0) 输出line 并让 flag=1
在重新定义初值 sum=0;z=0; 判断下一个身份证号
n-- 在while 的循环外判断
if (flag==2) 说明以上身份证都正确 ,
则输出All passed

3.代码截图

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

我刚开始的时候没有定义flag=2 直接让 flag=1来判断,可是在每次

判断完一个身份证后重新赋值时 会对是否输出All passed产生影响

所以就 先让flag=2 每次重新赋值时让flag=1 ;就能够解决了。

题目3:藏头诗

1. 本题PTA提交列表

2. 设计思路

3.代码截图

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

本题原先是出错在,比知道两个字符表示一个汉字,

以为的是一个字符表示一个数字,结果输出的答案不对

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

三、同学代码结对互评

1.互评同学名称

郑佳亮

2.我的代码、互评同学代码截图

我的代码 :

郑佳亮的代码:

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

我的代码虽然更长两行,但是我觉得我的想法会更好,我只用两个判断,就能够满足他四个判断的效果,所以我觉得我的代码会更好一些哦

四、本周学习总结

1.你学会了什么?

1.1指针变量如何定义

  • (1) 定义指针变量的一般形式为 类型名 *指针变量名

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

在明确定义指针指向确切的某个地址时 ,指针相加才有意义

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

答:若是不赋初值给指针,指针会随机指向一个地址,这样对程序会有危害,导致系统崩溃,停止运行。

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

void slipfloat(float x,int *intpart,float *fracpart)这句是指针变量作为形参,在主调函数中,将该变量的地址或者该变量的指针作实参,在被调函数中,用指针类型形参

接受该变量的地址,并改变形参所指向变量的值。

1.5 请把课本的冒泡排序的函数改成指针变量做形参格式,并把代码写在底下

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

p= a;

或者 p= &a[0]; 表示数组元素:p=a+1 或者 p=&a[1].

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

char *p

char line[80]

p = line; 其初始位置在基地址处

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

 #include<stdio.h>
void link(char *p1,char *p2);
int main ()
{
char line[160]={0},str[80];
char *p1=line,*p2=str;
int i=0;
while ((line[i]=getchar ())!='\n'){
i++;
}
line[i]=0;
//getchar ();
i=0;
while ((str[i]=getchar ())!='\n'){
i++;
}
str[i]='\0';
link(p1,p2);
puts(line);
return 0;
}
void link(char *p1,char *p2)
{
int i=0,j=0,index=160;
for(i=0;i<160;i++){
if(*(p1+i)=='\0'){
index=i;
}
if(i>=index){
*(p1+i)=*(p2+j);
j++;
}
}
}

说实话,我也不知道好处是什么,比较灵活吧

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

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

  • (1)以下选项中,对基本类型相同的指针变量不能进行运算的运算符是()。不会可以用DEVC去实践验证.

    进过老师讲解直到指针只能进行减法运算,不能进行加减乘除。
  • (2) 若有语句:int point,a=4; 和 point=&a; 下面均代表地址的一组选项是

    C、
    &point,*point,&a 我一开始是选择这个,刚开始没掌握嘛现在直到前两个都不是表示地址。

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

对于指针的运用还是不太熟悉,尤其是指针数组的运用。

3.数组上机考试小结

3.1 那题错了,请罗列?

6-2 jmu-c-二维数组转置并按列排序

7-2 jmu-c-十进制转16进制

7-3 jmu-c-输出字符间的字符子串

7-4 数组元素的删除(15 分)

以上的题目错了

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

6-2 jmu-c-二维数组转置并按列排序,这题在装置的地方对于j 的范围没定义好,结果有重新装置回去了

		for(j=0;j<n;j++){
if(i<j){
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t

我就在下面转换前加了一个条件,即可

7-2 jmu-c-十进制转16进制 这题还是不懂怎么做,还没想出来,不过我到时有一个取巧的办法,用%x输出

7-3 jmu-c-输出字符间的字符子串 忘记了当时那里卡住了,反正现在是做出来了

c字符数组的更多相关文章

  1. Base-64 字符数组或字符串的长度无效等问题解决方案

    项目特殊需要,调用ActiveX三维控件进行控件某一特殊部位的截图操作,这个截图保存由ActiveX控件控制保存到本地是没问题的,现在需要将这个截图上传到服务器,多人共享,就牵扯到需要读取本地文件…… ...

  2. 进制转换( C++字符数组 )

    注: 较为简便的方法是用 整型(int)或浮点型(long.double 注意:该类型不一定能够准确存储数据) 来存放待转换的数值,可直接取余得到每一位数值 较为稳定的方法是用 字符数组储存待转换的数 ...

  3. 字符数组和string判断是否为空行 NULL和0 namespace变量需要自己进行初始化

    string 可以这样判断空行input !="" 字符数组可以通过判断第一个元素是否为空字符'\0',是的话为空行arrar[0]=='\0':或者用长度strlen(char ...

  4. strlen 字符型数组和字符数组 sizeof和strlen的区别 cin.get(input,Arsize)

    strlenstrlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值 ...

  5. [c语言]字符数组、字符串定义

    C语言中字符串通常用字符指针和字符数组来定义: char* pS="abcdef"; char s[]="abcdef"; 这两种方式都会在结尾为字符串隐式补结 ...

  6. 计算字符数组长度,用strlen 与 sizeof 的原理与区别

    遇到个坑,定义了一个字符数组 unsigned ;i<;i++) { buff[i] = ; } 然后用串口发送函数: write(fd, buff, strlen(buff)); 却发现串口一 ...

  7. Delphi字符串与字符数组之间的转换(初始化的重要性)

    紧接着上篇博客讲解的内容: 将Char型数组转换为string类型还有下面的这种方法 但是我在测试的时候遇到了一些问题,并在下面进行了解释和总结 先说出我的总结 其实我们在学习编程的时候(比如我之前学 ...

  8. Delphi的字符串、PChar和字符数组之间的转换

    参考:http://my.oschina.net/kavensu/blog/193719 以下的各种方法都是我在Delphi 6的环境下测试成功的,可能根据你的开发环境.不同的上下文语境……有一些可能 ...

  9. C字符数组赋值(转)

    举例如下: char a[10];1.定义的时候直接用字符串赋值char a[10]="hello";注意:不能先定义再给它赋值,如 char a[10]; a[10]=" ...

  10. C#List转字符串,字符串转List,字符数组转Int数组

    List转字符串 [C#] 纯文本查看 复制代码 ? 01 02 List<string> List = new List<string>(); string strArray ...

随机推荐

  1. Directory Opus(DO) 个人使用经验 2.0

    设置已有命令的快捷键 设置方法 保存显示格式 保存方法 取消删除确认框 Windows取消删除确认框DO取消删除确认框 设置默认布局 设置方法 备份与恢复 设置已有命令的快捷键 已有命令指的是菜单栏上 ...

  2. GitHub图形界面使用笔记

    GitHub图形界面使用笔记   学会了最简单的在GitHub上上传项目和展示项目,怕自己会忘记所以还是先记录下了来. GitHub 是一个共享虚拟主机服务,用于存放使用Git版本控制的软件代码和内容 ...

  3. mfc100u.dll下载和使用方法

      当运行软件或游戏时,系统提示"丢失mfc100u.dll"."没有找到mfc100u.dll"等类似错误信息. 请下载本站提供的dll文件,使用它可以帮助用 ...

  4. 【BZOJ4650】【NOI2016】优秀的拆分(后缀数组)

    [BZOJ4650][NOI2016]优秀的拆分(后缀数组) 题面 BZOJ Uoj 题解 如果我们知道以某个位置为开始/结尾的\(AA\)串的个数 那就直接做一下乘法就好 这个怎么求? 枚举一个位置 ...

  5. 【Luogu3455】【POI2007】ZAP-Queries(莫比乌斯反演)

    [Luogu3455][POI2007]ZAP-Queries(莫比乌斯反演) 题面 题目描述 FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x ...

  6. Vue-生命周期图示 注解

    根据腾讯课堂视频讲解,将官网生命周期图示进行注解,以加深印象和理解 贴一个源码示例: 注意位置和写法

  7. 标注-CRF条件随机场

    1 概率无向图模型1.1 模型定义1.2 因子分解2 条件随机场的定义2.2 条件随机场的参数化形式2.3 条件随机场的简化形式2.4 条件随机场的矩阵形式 3 条件随机场的概率计算问题 3.1 前向 ...

  8. OpenAI dota2大战人类顶尖选手视频

    AI大战Dendi:http://www.bilibili.com/video/av13267474/?zw#quality=3 AI大战Sumail:http://www.bilibili.com/ ...

  9. Postman教程——创建第一个集合

    系列文章首发平台为果冻想个人博客.果冻想,是一个原创技术文章分享网站.在这里果冻会分享他的技术心得,技术得失,技术人生.我在果冻想等待你,也希望你能和我分享你的技术得与失,期待. 什么是集合 集合是P ...

  10. mysql执行计划简介

    介绍 本篇主要通过汇总网上的大牛的知识,简单介绍一下如何使用mysql的执行计划,并根据执行计划判断如何优化和是否索引最优. 执行计划可显示估计查询语句执行计划,从中可以分析查询的执行情况是否最优,有 ...