请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。
一、实验代码
include<stdio.h>
include<stdlib.h>
int main (void)
{
FILE *fp;
int i,max;
int a[6];
if((fp=fopen("E:Swallow.txt","a+"))==NULL){
printf("File open error!
") ;
exit (0);
}
for(i=0;i<6;i++){
fscanf(fp,"%d",&a[i]);
printf("%d",a[i]);
}
max=0;
for(i=0;i<6;i++)
if(a[max]<a[i])
max=i;
printf("
%d %d",a[max],max);
fprintf(fp,"%d %d",a[max],max);
if(fclose(fp)){
printf("Can not close the file!
");
exit (0);
}
return 0;
}
二、设计思路
应该是把大的数值赋给max(不是赋给sum)
三、遇到的问题及解决方法
问题1:换行的地方出现了问题,导致得不到自己想要的结果
解决方法:仔细看代码多次更改找出不好的地方
问题2:对指针的运用不太熟悉
解决方法:自己翻书,看例题
问题3:老是忘记"fprintf"
解决方法:询问了同学,知道了这是必须要的
四、运行图片
五、学习进度条
周/日期 | 这周所花的时间 | 代码行数 | 学到的知识点 | 目前比较困惑的问题 |
---|---|---|---|---|
2/25-3/3 | 三天 | 45 | 学习数组及用法 | 数组的长度问题 |
3/4-3/10 | 三天 | 40 | 文件的处理问题 | 文件指针的用法 |
六、做题总结
开始看到这个题目就觉得有点难,自己也不确定对不对,就一直没有做完,到要提交的前几个小时静下来想想,突然发现好像也不是那么难,主要就是在写代码的时候一些小的细节不注意好,当然也是参考了别人的作业然后完成的。
感悟:上节课的末尾段讲的知识不明白,也就是“用户信息加密和校验”的代码,有很多看不懂的地方,不知道有些话是干什么的,争取在下节课之前自己通过各种方法弄明白!