C语言博客作业--字符数组
一、PTA实验作业
题目1:7-3 找最长的字符串
1. 本题PTA提交列表
2. 设计思路
定义变量n存字符串数,max存最长长度
定义数组 a[1000]存放字符串,b[1000]存放最长数组,c临时字符
输入n
for i=1 to i>n
for j=1 to c=回车
a[j]=c;
end j
if j>max
for k=1 to k>j
b[k]=a[k]
end k
max=j
end i
输出The longest is 和最长数组
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
- 多种错误 是由于数组定义时没用static定义导致数组没有初始化而错误
- 答案错误 我将数组扩大十倍后就多通过一个测试点
题目2:7-5 统计大写辅音字母
1. 本题PTA提交列表
2. 设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
- 部分正确:看错题目,将非原音字母看成元英字母导致出错
题目3:7-12 IP地址转换
1.本题PTA提交列表
2. 设计思路
定义字符数组a存放32位2进制
定义ip存放数字形式ip
输入字符串a
for i=0 to i=32
ip=a[i]转数字+ip*2
如果i+1能整除8
输出ip
如果i不为32输出.
ip=0
end i
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
- 本题无误
二、截图本周题目集的PTA最后排名。
三、同学代码结对互评
陈文杰代码 我的代码
点评:首先在他的输入部分用的是循环结构,而我的是gets语句,我觉得我这么写更加简洁,而且运行效率可能会更高些,其次,在判断是否相同字段时他使用的方法过于冗余,
而我是采用课堂派上用过的方法,他的方法代码量太大了,而且不好懂,其他的都还行
四、本周学习总结
1.你学会了什么?
1.1指针变量如何定义
类型 *p
1.2 指针加法运算运用在哪种情况,2个指针变量能否相加?
可以用在看两个内存直接差多少个内存,不能相加因为地址相加没有意义
1.3 指针不赋初值,直接使用,会出现什么情况,请用DEVC验证,并截图展示?
程序会奔溃
1.4 课堂派上关于分离浮点数的整数部分和小数部分那题,请用DEVC验证实现,并在此贴图展示,同时说明哪句是指针变量做函数形参,函数实参应该怎么表示。指针变量做函数形参有什么用处?
#include<stdio.h>
void brek(float x,int *intpart,float *floatpart);
int main(void)
{
int intpart;
float number,floatpart;
scanf("%f",&number);
brek(number,&intpart,&floatpart);
printf("%d %f",intpart,floatpart);
return 0;
}
void brek(float x,int *intpart,float *floatpart)
{
*intpart=x;
*floatpart=x-*intpart;
}
指针变量做函数形参:void brek(float x,int *intpart,float *floatpart)
函数实参:地址即数组名
好处:便于操作
1.5 请把课本的冒泡排序的函数改成指针变量做形参格式,并把代码写在底下,注意用markdown语法渲染
void bubblde(int \*p,int n)
{
int i,j,t;
for(i=1;i<n;i++)
for(j=0;j<n-i;j++)
if(*(p+j)>*(p+j+1)){
t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;
}
}
1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?
int *p;
int a[10];
p=a;
表示a[n]=*(p+n)
1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?
char *p;
char a[10];
p=a;
初始位置在第一个字符
1.8 利用字符指针操作字符串,如设计函数实现字符串连接,请在此贴图展示代码。说明指针表示字符的方法好处是什么?
好处:便于操作
2.本周你不会内容有什么?
2.1 课堂派错题罗列及如何订正。
A选项中的*&a不表示地址
指针未赋初值不能使用
2.2 其他不会的?打算怎么解决
- 对于pta字符数组的题目还不是很会,做出来的题目有些思路很乱,打算多和同学讨论多看看别人代码