2019年春季学期第二周作业
基础作业
请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。
(一)实验代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE * fp;
int i,max,n;
scanf("%d",&n);
int a [n];
char op=',';
if((fp = fopen ("D:\yanghucai.txt","r+")) == NULL)
{
printf ("File open error!
");
exit(0);
}
for(i=0;i<n;i++)
fscanf (fp,"%d%c",&a [i],&op);
max=0;
for(i=1;i<n;i++)
if(a [i]>a[max])
max=i;
fprintf (fp,"
%d %d",a [max],max);
if(fclose (fp) ){
printf ("Can not close the file!
");
exit(0);
}
return 0;
}
(二)设计思路
(三)实验遇到的题及解决方案
第一次接触文件没有思路,老师上课所讲的听得很迷糊,没咋听懂,查阅书上关于文件这一章的知识点吗,懂得了r+是打开二进制文件进行写和读。通过书上的例子渐渐的找到了自己的思路。刚开始在if((fp = fopen ("D:yanghucai.txt","r+")) == NULL) 这一行代码中我居然不知道D的意思,这原来是磁盘的类型,误在C盘中建立了请建立以自己英文名字命名的txt文件,导致文件一直打开错误。然后就是这个r+问题,我打代码时,还是打成了r,有室友的提醒才改过来。最后就是这个回车问题,我一直用固定思维把它放在所输出的结果后面,但是这个题要放前面。这几个小错误耗费了我四个小时的时间,看来对c语言的理解还处在一个比较浅的层次。
四,运行结果截图
五,学习进度条。
六,学习感悟。
学了文件这一章,苦啊,上课听不太懂,只能靠自己看书慢慢摸索,如何把自己的代码用文件读和运行出来费了我好一番功夫,因为指针这一章还没教,只教了一维数组,所以觉得很难,只能不断看书,慢慢思索,实在不会就请教别人,学贵以恒,慢慢来吧。