第二周作业

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!\n");
        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,"\n%d %d",a [max],max);
        if(fclose (fp) ){
           printf ("Can not close the file!\n");
           exit(0);
        }
        return 0;
}

(二)设计思路

(三)实验遇到的题及解决方案

第一次接触文件没有思路,老师上课所讲的听得很迷糊,没咋听懂,查阅书上关于文件这一章的知识点吗,懂得了r+是打开二进制文件进行写和读。通过书上的例子渐渐的找到了自己的思路。刚开始在if((fp = fopen ("D:\yanghucai.txt","r+")) == NULL) 这一行代码中我居然不知道D的意思,这原来是磁盘的类型,误在C盘中建立了请建立以自己英文名字命名的txt文件,导致文件一直打开错误。然后就是这个r+问题,我打代码时,还是打成了r,有室友的提醒才改过来。最后就是这个回车问题,我一直用固定思维把它放在所输出的结果后面,但是这个题要放前面。这几个小错误耗费了我四个小时的时间,看来对c语言的理解还处在一个比较浅的层次。

四,运行结果截图

五,学习进度条。

六,学习感悟。

学了文件这一章,苦啊,上课听不太懂,只能靠自己看书慢慢摸索,如何把自己的代码用文件读和运行出来费了我好一番功夫,因为指针这一章还没教,只教了一维数组,所以觉得很难,只能不断看书,慢慢思索,实在不会就请教别人,学贵以恒,慢慢来吧。

posted @ 2019-03-09 11:37 小嗝嗝爱作业 阅读(...) 评论(...) 编辑 收藏