2019年春季学期第二周作业
基础作业
请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。
实验代码
#include<stdio.h> #include<string.h> #include<stdlib.h> int main() { FILE*fp; int a[10]; int i, n, f=0; if((fp=fopen("D:\Jastina.txt","a+"))==NULL) { printf ("File open error! "); exit (0); } scanf ("%d",&n); fprintf (fp,"%d ",n); for (i=0; i<n; i++) { scanf ("%d",&a[i]); fprintf(fp,"^%d",a[i]); } for (i=0; i<n; i++) { if (a[f]<a[i]) f=i; } printf ("%d %d",a[f],f); fprintf (fp," %d %d",a[f],f); if (fclose(fp)) { exit (0); } return 0; }
实验思路
定义一个数组,让它最多含有10个元素,定义文件指针,和数组名称,把这个数组输入到文件中去,再把每个元素的大小比较,把最大值机器下表输出出来
流程图
本题遇到的困难及解决办法
1、没有输出程序结果,所以最后程序运行不出
2、输入数组的时候写成文件输入形式所以运行结果总是不对,是123456..
3第一次进行文件存储操作,很陌生,很费时,应该多加练习才好
运行结果截图
学习进度条
学习感悟
本周我们学习了到文件的概念,并深入学习从给定的文件中读取数据并进行数据处理,主要包括定义文件指针(FILE型)fp、打开文件,从文件读取数据和关闭文件等操作。其中FILE可以看做是新的数据类型,用来表示文件。fopen(),fscanf(),fclose(),是文件操作额函数,在stdio.h中定义。其中,fscanf()的功能是把磁盘文件数据读出保存到变量中。 另外还初步学习到了关于指针的概念。
感悟:其实最初听课时候觉得很难感觉一点也不理解,但是后来经过反复去看教科书再尝试编写代码的时候就发现自己可以理解了,所以我觉得还是坚持吧,哪怕一开始不懂不代表永远不会理解。