一、本周完成的作业
请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。
1)实验代码
#include<stdio.h> #include<stdlib.h> int main() { FILE *fp; int a[10]; int i, q=0, m; if((fp=fopen("D:\作业\xiongyating.txt","r+"))==NULL) \注意双斜杠 { printf("File open error! "); exit(0); } \可用来判断文件是否打开正常 for(i = 0; i < 5; i++) { fscanf(fp,"%d%c", &a[i]); printf("%d%c", a[i]); \%c题目要求以逗号分隔开来 } m = a[0]; for(i = 0; i < 5; i++) { if(a[i] > m) { m = a[i]; q = i; } } printf(" %d %d", m, q); fprintf(fp," %d %d", m, q); \注意换行符 if(fclose(fp)) { printf("Can not close the file! "); exit(0); } return 0; }
2)设计思路
3)本题调试过程碰到问题及解决办法
1、我在使用fscanf函数时的一个误区:
程序在运行到“输入文件中的数据”这一步时会出现数据读取不到而导致出现随机值的结果,如下图所示
每个数据间是用逗号隔开的,而我定义的数组是整型的,这就导致fscanf读取错误。解决方案就是将所有逗号换成空格。
4)运行结果截图
二、学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
3/5-3/9 | 3小时 | 40 | 数组的认识及用法 | 关于文件的问题有点搞不懂 |
三、学习感悟
这个学期的知识比上个学习的知识难了不少,但在刚刚开学这几个星期我还没调整状态,在这个学期我更应该认真一点