第五周编程总结
本次作业所属课程 |
C语言程序设计|| |
本次作业要求 |
|
我在这个课程的目标是 |
学会数组与文件之间的转化 |
本次学习在哪些具体方面帮组我实现目标 |
学会画流程图 |
参考文献 |
C primer plus第六版 |
题目一:统计一行文本的单词个数
1)代码截图
#include<stdio.h> #include<string.h> int main(void) { int i,len,num; char zf[1000]; gets(zf); len = (zf); if(zf[0]==' ') num = 0; else num = 1; for(i = 0; i < len - 1; i++) { if(zf[i]==' '&&zf[i+1]!=' ') num++; } printf("%d",num); return 0; }
2)设计思路
3)本题调试过程中遇到的问题及解决方案
问题一:这题还没写老师就告诉我们答案了,不过我还是了解一下strlen函数的使用方法:计算字符串的长度,但是不包括'\0'在内
4)运行结果截图
题目二:统计一行文本的单词个数
1)代码截图
#include<stdio.h> #include<string.h> #include<stdlib.h> int main(void) { int i,j,len; char a[20][10],b[10]; FILE *fp; if((fp=fopen("E:\\wangweihan.txt","a+"))==NULL) { printf("File open error!\n"); exit(0); } for(i = 0 ; ; i++) { fscanf(fp,"%s",a[i]); if(a[i][0]=='#') break; i++; } a[i][0] = '\0'; len = i; for(i = 0 ; i < len ; i++) { for(j = 1 ; j < len-i ; j++) { if(strlen(a[j-1]) > strlen(a[j])) { strcpy(b,a[j]); strcpy(a[j],a[j-1]); strcpy(a[j-1],b); } } } fprintf(fp,"\n"); for(i = 0 ; i < len ; i++) { fprintf(fp,"%s ",a[i]); } if(fclose(fp)) { printf("Can not close the file!\n"); exit(0); } return 0; }
2)设计思路
3)本题调试过程中遇到的问题及解决方案
问题一:把代码改成文件格式还是不会
问题一的解决方案:借鉴了别人的代码把我的代码改成了文件格式,然后在百度里找到了strcpy函数的使用方法:src字符数组复制到dest数组中,如果dest数组本身有数据,会把src里的数据全部复制到dest中,如果dest中有数据小于src地址长度的将会被覆盖,而大于src长度的将保留,结合这些资料,我写出了我的代码
4)运行结果截图
题目三:第五周预习题
A 、单选题7
int *p,a=10,b=1;
p=&a; a=*p + b;
执行该程序段后,a的值是 (2分)
void f(int *p)
{
*p = 5;
}
int main(void)
{
int a, *p;
a = 10;
p = &a;
f(p);
printf(“%d”, (*p)++);
return 0;
}
#include <stdio.h>
void fun (int c, int *d) {
c++;
(*d)++;
}
int main ( ){
int a=5, b=9;
fun(a, &b);
printf("%d, %d", a, b);
return 0;
}
预习题总结与心得:通过自学指针以及这几个题目,我大致了解了数组的作用,指针贮存的是一个地址,相比数组而言,指针是间接的访问。
目前存在的疑惑:指针的调用
题目四:挑战题
简单的来说,不会写,以下是我对这个题目的一些拙见
本次挑战题在上周的基础上增加了矩阵的要求,我认为可以将数组的字符串长度先算出来,然后存到数组里面,然后使用if语句进行判断,最后依次输出吧。
四、学习进度条
时间 |
这周所花时间 |
代码行数 |
学到的知识简介 |
目前比较迷惑的问题 |
第一周 |
5小时 |
80 |
初步了解数组 |
数组的引用 |
第二周 |
6小时 |
200 |
指针的了解 |
完全没听懂老师上课在讲什么,继续努力 |
第三周 |
7小时 |
200 |
文件与数组的使用 |
没看到代码运行后文件的内容发生改变 |
第四周 |
9小时 |
120 |
冒泡法,选择排序法 |
冒泡法不会 |
第五周 |
9小时 |
120+ |
字符型数组 |
把代码改成文件格式 |
五、累积代码行数及博客字数
六、结对编程感想
对于这次结对编程,我感觉在互相讨论的过程中加深了自己对以前知识的理解,同时又学会了一些新的知识,感觉结对编程还是可以促进编程能力的
总结:对于这次作业,感觉·PTA上面的题目较博客里的题目要简单很多,通过助教的思路以及新的函数解决PTA的题目并不是特别困难