C语言第八次作业

时间:2024-04-04 18:34:45

一、PTA实验作业

题目1:统计一行文本的单词个数

1.本题PTA提交列表

C语言第八次作业

2.设计思路

//  一个非空格和一个空格代表一个单词
char str[1000]; 存放一行文本
定义 I,j=0;用作循环和统计单词个数
gets(输入一行文本)
for(i =0;;i++)用来循环下面的步骤
if (str[i]不为空格并且它后一位str[i+1]为空格)
j++
else 如果str[i]为‘\0’
如果str[I-1]为空格
j++ 并跳出循环
输出 j

3.代码截图

C语言第八次作业

4.调试过程中所遇到的问题

开始的思路是单词前面是一个空格,后面不是空格来数,但是总会发生未知错误,怎么调试都调试不出来,后来换为单词后面是一个空格来计数一个单词。

题目2:删除字符串中的子串

1.本题PTA提交列表

C语言第八次作业

2.设计思路

int I=0,j,k,long_s1,long_s2,flag  定义循环变量和表示字符长度的变量
char s1[81],s2[81]
gets[输入s1,s2]
long_s1 =strlen(s1)
long_s2 =strlen(s2 )利用c++的语言来计算数组长度
for I=0 to long_s1-1
flag初始化为0
for j=0,k=I s1[k]==s2[j] 时进入循环 j++,k++
flag++
如果s2[j+1]为\0
break
如果flag ==long_s2 //删除子串的操作
for int m=I to s1[m]==0 m++
s1[m] =s1[m+long_s2]
I =-1
输出s1

3.代码截图

C语言第八次作业

4.本题调试过程碰到问题

flag没有每次的都归零导致结果错误,删除子串的这几步骤参考了同学的代码。

题目三:字符串转换成十进制整数

1.提交列表

C语言第八次作业

2.设计思路

C语言第八次作业

3.代码截图

C语言第八次作业

4.调试过程中所遇到的问题

二截图本周题目集的PTA最后排名

C语言第八次作业

三、同学代码结对互评

四、本周学习总结

1.你学会了什么?

1.1 指针变量的定义: 类型名 指针变量名

1.2 指针运算在指针指向数组时两指针变量可相加,如
(p+1)=a[1]

1.3 指针不赋初值直接使用会出现——程序将无法运行

C语言第八次作业

1.4 int *i 和 float *f 作为形参,函数实参可用地址表示,指针变量做作函数形参可以通过地址改变实参的值

1.5 课本的冒泡排序的函数改成指针变量做形参格式

void bubble(int *p,int n)
{
int i,j,t;
for(i =1;i <n;i++)
for(j =0;j <n-1;j++,p++)
if(*p >*(p+1)){
t =*p;
*p =*(p+1)
*(p+1) =*t
}
}

1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?

  • 定义指针时指向数组名. 如, int a[10],*p=a.
  • 用 *(p+i) 表示 a[i].

    1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?
  • 例 char *p = “abc” 初始位置在首地址

2.本周你不会内容有什么?

指针和数组的混合使用很混乱

PTA错题罗列

C语言第八次作业

C语言第八次作业

3.数组上级考试小结

考试全都不会,错误调试不出来。