一、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. Linux之shell编程

    一.Bash变量 1) Bash变量与变量分类 1. 定义:变量是计算机内存的单元,其中存放的值可以改变 2. 变量命令规则 #变量名必须以字母或下划线开头,名字中间只能由字母.数字和下划线组成 #变 ...

  2. JS倒计时特效--JavaScript基础

    1.倒计时特效HTML源码 <!DOCTYPE html><html lang="en"><head> <meta charset=&qu ...

  3. 原生JS实现tab切换--web前端开发

    tab切换非常常见,应用非常广泛,比较实用,一般来说是一个网站必不可少的一个效果.例如:https://123.sogou.com/中的一个tab部分: 1.案例源代码 <!DOCTYPE ht ...

  4. 你需要了解的高可用方案之使用keepalived搭建双机热备一览

    在之前一篇使用nginx搭建高可用的解决方案的时候,很多同学会问,如果nginx挂掉怎么办,比如下面这张图: 你可以清楚的看到,如果192.168.2.100这台机器挂掉了,那么整个集群就下线了,这个 ...

  5. css3动画结束捕捉事件整理

    //捕捉webkitAnimationEnd事件 element.addEventListener('webkitAnimationEnd', end, false); //捕捉webkitTrans ...

  6. hbase 导入导出、hbase shell 基本命令。

    数据导入 ./hbase org.apache.hadoop.hbase.mapreduce.Driver import  表名    数据文件位置hdfs数据文件位置 可以加 前缀 file:/// ...

  7. 设置ImageView显示的图片铺满全屏

    转自:http://m.blog.csdn.net/blog/wjwj1203/32334459   为适应不同屏幕的手机,ImageView显示的图片可能不铺满屏幕,如果定高的话,两边可能会出现空白 ...

  8. CentOS7.4安装MySQL踩坑记录

    CentOS7.4安装MySQL踩坑记录 time: 2018.3.19 CentOS7.4安装MySQL时网上的文档虽然多但是不靠谱的也多, 可能因为版本与时间的问题, 所以记录下自己踩坑的过程, ...

  9. SQL Server The target database ('db') is in an availability group and currently does not allow read only connections. For more information about application intent, see SQL Server Books Online.

    一.问题概述 在错误日志中看到非常多的alwayson群集只读连接错误,错误信息的描述为“目标数据库位于可用性组,当前不允许通过read only连接”.错误日志如下: 当前的业务系统使用监听ip对数 ...

  10. C#多线程编程(7)--锁

    一提到线程同步,就会提到锁,作为线程同步的手段之一,锁总是饱受质疑.一方面锁的使用很简单,只要在代码不想被重入的地方(多个线程同时执行的地方)加上锁,就可以保证无论何时,该段代码最多有一个线程在执行: ...