c字符数组
一、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字符数组的更多相关文章
- Base-64 字符数组或字符串的长度无效等问题解决方案
项目特殊需要,调用ActiveX三维控件进行控件某一特殊部位的截图操作,这个截图保存由ActiveX控件控制保存到本地是没问题的,现在需要将这个截图上传到服务器,多人共享,就牵扯到需要读取本地文件…… ...
- 进制转换( C++字符数组 )
注: 较为简便的方法是用 整型(int)或浮点型(long.double 注意:该类型不一定能够准确存储数据) 来存放待转换的数值,可直接取余得到每一位数值 较为稳定的方法是用 字符数组储存待转换的数 ...
- 字符数组和string判断是否为空行 NULL和0 namespace变量需要自己进行初始化
string 可以这样判断空行input !="" 字符数组可以通过判断第一个元素是否为空字符'\0',是的话为空行arrar[0]=='\0':或者用长度strlen(char ...
- strlen 字符型数组和字符数组 sizeof和strlen的区别 cin.get(input,Arsize)
strlenstrlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值 ...
- [c语言]字符数组、字符串定义
C语言中字符串通常用字符指针和字符数组来定义: char* pS="abcdef"; char s[]="abcdef"; 这两种方式都会在结尾为字符串隐式补结 ...
- 计算字符数组长度,用strlen 与 sizeof 的原理与区别
遇到个坑,定义了一个字符数组 unsigned ;i<;i++) { buff[i] = ; } 然后用串口发送函数: write(fd, buff, strlen(buff)); 却发现串口一 ...
- Delphi字符串与字符数组之间的转换(初始化的重要性)
紧接着上篇博客讲解的内容: 将Char型数组转换为string类型还有下面的这种方法 但是我在测试的时候遇到了一些问题,并在下面进行了解释和总结 先说出我的总结 其实我们在学习编程的时候(比如我之前学 ...
- Delphi的字符串、PChar和字符数组之间的转换
参考:http://my.oschina.net/kavensu/blog/193719 以下的各种方法都是我在Delphi 6的环境下测试成功的,可能根据你的开发环境.不同的上下文语境……有一些可能 ...
- C字符数组赋值(转)
举例如下: char a[10];1.定义的时候直接用字符串赋值char a[10]="hello";注意:不能先定义再给它赋值,如 char a[10]; a[10]=" ...
- C#List转字符串,字符串转List,字符数组转Int数组
List转字符串 [C#] 纯文本查看 复制代码 ? 01 02 List<string> List = new List<string>(); string strArray ...
随机推荐
- java创建自定义类的数组
今天在学图论的最小生成树,开始一直在想是用邻接矩阵还是关联矩阵来表示图,但是发现这样都会有好多空间浪费.于是我就自定义一个边的类,里面包含了权值,关联的端点1,端点2,和图的表示字母.发现我想创建11 ...
- freemarker字符串拼接(十二)
freemarker字符串拼接 1.字符串拼接的几种类型 (1)字符串和字符串 (2)字符串和数字 (3)字符串和字符串变量 (4)字符串变量和字符串变量 2.演示示例 <#--定义字符串--& ...
- 一个完整的springmvc + ajaxfileupload实现图片异步上传的案例
一,原理 详细原理请看这篇文章 springmvc + ajaxfileupload解决ajax不能异步上传图片的问题.java.lang.ClassCastException: org.apache ...
- I2C总线通讯协议
I2C总线通讯协议 1. I2C总线简介 I2C是Inter-Integrated Circuit的简称,读作:I-squared-C.由飞利浦公司于1980年代提出,为了让主板.嵌入式系统或手机用以 ...
- PyTorch官方中文文档:torch.Tensor
torch.Tensor torch.Tensor是一种包含单一数据类型元素的多维矩阵. Torch定义了七种CPU tensor类型和八种GPU tensor类型: Data tyoe CPU te ...
- 英文汉语切换的导航栏,纯css制作。
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 洛谷U19464 山村游历(Wander)(LCT,Splay)
洛谷题目传送门 LCT维护子树信息常见套路详见我的总结 闲话 题目摘自WC模拟试题(by Philipsweng),原题目名Wander,"山村游历"是自己搞出来的中文名. 数据自 ...
- 【HNOI2012】永无乡(splay,启发式合并)
题解 Description 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 n 座岛排名,名次用 1 到 n 来表示.某些岛之间由巨大的桥连接,通过 ...
- [BZOJ2684][CEOI2004]锯木厂选址
BZOJ权限题! Description 从山顶上到山底下沿着一条直线种植了n棵老树.当地的政府决定把他们砍下来.为了不浪费任何一棵木材,树被砍倒后要运送到锯木厂. 木材只能按照一个方向运输:朝山下运 ...
- [HAOI2010]软件安装
简单的tarjan+(本蒟蒻刚刚接触不久)恶心的树形DP 题面 题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi.我们希望从中选择一些软件安装到一台磁盘容量为 ...