第二周作业

2019年春季学期第二周作业

一、本周完成的作业:

基础作业

请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。

1)、实验代码

#include<stdio.h>
#include<stdlib.h>
int main (void)
{
    FILE * fp;
    int i,n,index;
    int s [10];
    char op=',';
    
    if ((fp = fopen ("c:\\ songguanhao.txt","r+")) == NULL) {
        printf ("File open error!\n");
        exit (0);
    }
    fscanf (fp,"%d",&n);
    for (i=0; i<n; i++)
        fscanf (fp,"%d%c",&s [i] ,&op);
        index=0;
    for (i=0; i<n; i++)
        if (s [i] > s[index] )
        index=i;
    fprintf (fp,"\n%d %d",s [index],index);
    if (fclose (fp)) {
        printf ("Can not close the file! \n" );
        exit (0);
    }
    
    return 0;
}

2)、设计思路

1581866-20190307212141848-637980220.png

判断最大值及最小下标:

1581866-20190306164551483-1511905945.png

3)、本题调试过程碰到的问题及解决方法

刚开始看到题目没一点思路,但既然直接跳着讲十二章,肯定能做,就看书,反复看究竟如何打开文件,什么怎么读,怎么写入......
然后题目的意思一开始也没怎么搞懂,不知道是要写入文件还是读出文件中的数据。
第一次运行成功是是这样的:

1581866-20190306163404450-710791428.png

虽然文件里只显示最大值和最小下标,但很兴奋,以为完成了。当我准备再看看能力题时,又看了一遍题目,发现不对,文件里还要有数组中包含的数据,题目中提到要在保证文件中内容不删除的前提下,将结果写入。然后就知道文件里一开始也是要有数据的,需要读出来,然后对代码进行改正。
改过后,我先在文件里输入数组元素个数,数据,然后进行保存,再去运行,运行后不用输入,直接打开文件,就有了结果:

1581866-20190306163422949-757799917.png

4)、运行结果图

如上图。

二、学习进度条

周/日期这周所花的时间代码行数学到的知识点简介目前比较困惑的问题
3/3-3/8三天六小时501、定义、运用文件指针;2、如何打开、关闭文件3、如何读出指定文件中的数据;4、如何向指定文件中写入数据;字符、字符串有什么区别?二者输入、输出有没有很大不同?什么才算字符串?什么算字符?在文件中二者有没有差别?

三、学习感悟

第一次接触指针,可能大多数同学都已经往后学习了,自己是第一次碰到所以很生疏。况且我数组方面也还没有搞透彻。如今一周只有一节专业课了,已经变成完全靠自己了。真的靠自己学习,怕是靠不住。但有时想想别的同学都是在自学,并且已远超自己,啊,想想还是会有些许动力的。

转载于:https://www.cnblogs.com/songguanhao/p/10484142.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值