C语言博客作业--字符数组
一、PTA实验作业
题目1:找最长的字符串
1. 本题PTA提交列表
2. 设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
在本题中一开始忘记了最后一个a[i]要赋值为'\0',导致程序不完全正确。
题目2: 字符串转换成十进制整数
1. 本题PTA提交列表
2. 设计思路
定义字符组ch[],a[]
定义整型类型的数num,i,k=0,flag=0//flag用来判断是否为负数,num为数据计算结果
while((ch[i]=getchar())!='#'){
i++;}
ch[i]='\0';
for(i=0;ch[i]!='\0';i++){
当ch[i]中的字符为09,af,A~F,'-'时,
储存在a[k]中
k++;}
if(b[0]'-')flag=1;//flag=1用来表示负数
for(i=0;a[i]!='\0';i++){//计算数组a中所要表达的数
if(a[i]>='0'&&a[i]<='9') num=num16+a[i]-'0';
else if(a[i]>='a'&&a[i]<='f') num=num16+a[i]-'a'+10;
else if(a[i]>='A'&&a[i]<='F') num=num*16+a[i]-'A'+10;
else if(a[i]'-') num=num;}
if(num0) 输出0;
else{
if(flag1) 输出-num;
else 输出num;}
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
第一次忘记负数的情况,第二次忘记为0时,即使前面有'-'号也是输出0;
题目3:统计大写辅音字母
1. 本题PTA提交列表
2. 设计思路
定义字符串a[80];定义整型类型count=0;
输入字符串a[],gets(a);
for(i=0;a[i]!='\0';i++)
if(ch[i]>'A'&&ch[i]<='Z'&&ch[i]!='E'&&ch[i]!='I'&&ch[i]!='O'&&ch[i]!='U')
count++;
输出count;
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
本题没有遇到什么较大的困难,相对简单。
二、截图本周题目集的PTA最后排名。
三、同学代码结对互评
这一题我是只用了一维数组来做,林艺薇则是用二维数组的方法来做,我们的不同之处在于,我是一个一个的来比,比完在输入下一个字符串,然后删掉短的,林艺薇则是运用二维数组先输入所有的字符串,从中找出最长的字符串。二者的可读性都觉的挺不错的。我还是觉的二维数组的方法挺好的,以后要是遇到这种要输入多个字符串的,运用二维数组是一个很方便的方法。
四、本周学习总结
1.你学会了什么?
1.1指针变量如何定义
int *a;
1.2 指针加法运算运用在哪种情况,2个指针变量能否相加?
指针加法运算适用于自增,或者加上某个常数。
两个指针变量不能相加。
1.3 指针不赋初值,直接使用,会出现什么情况,请用DEVC验证,并截图展示?
出现任意值。
1.4 课堂派上关于分离浮点数的整数部分和小数部分那题,请用DEVC验证实现,并在此贴图展示,同时说明哪句是指针变量做函数形参,函数实参应该怎么表示。指针变量做函数形参有什么用处?
1.5 请把课本的冒泡排序的函数改成指针变量做形参格式,并把代码写在底下,
void bubble(int *p,int n)
{
int i,j,t;
for(i=1;i<n;i++)
for(j=0;j<n-i;j++,p++)
if(*p>*(p+1))
{
t=*p;
*p=*(p+1);
*(p+1)=t;
}
}
1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?
int *p,a[999];
p=a;//p指向了数组a;
p++将指向a[i++];
1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?
char *p;
char ch[10] = "abcdefghij";
p = ch;
1.8 利用字符指针操作字符串,如设计函数实现字符串连接,请在此贴图展示代码。说明指针表示字符的方法好处是什么?
char p1="123 ";
char p2="abc";
gets(p1);gets(p2);
减少代码的量,减少变量,使程序可读性更高
减少占用内存。
2.本周你不会内容有什么?
2.1 课堂派错题罗列及如何订正。
重新看程序,一步步下来就理解了他的意思。
2.2 其他不会的?打算怎么解决
用指针来运用在数组的时候,感觉还是不会怎么去运用,我将在遇到数组的题目时用指针的方法来做,夺取理解个了解。
3.数组上机考试小结
3.1 那题错了,请罗列?
函数第二题,数组第三题
3.2 错题如何订正,为什么错了?
函数第二题,在转制后的排序总是感觉哪里错了,我只有使用了两个循环,用了三个循环后就可以解决了。
数组第三题,因为函数第二题时间花太多了,导致这一题只有匆忙的看了一下,这一题倒是有思路。