C语言博客作业--字符数组
2017-12-10 14:19
351 查看
一、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
=*(p+n)
1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?
char *p; char a[10]; p=a;
初始位置在第一个字符
1.8 利用字符指针操作字符串,如设计函数实现字符串连接,请在此贴图展示代码。说明指针表示字符的方法好处是什么?
好处:便于操作
2.本周你不会内容有什么?
2.1 课堂派错题罗列及如何订正。
A选项中的*&a不表示地址
指针未赋初值不能使用