2019年春季学期第二周作业
基础作业
请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出:
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。
实验代码:
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
FILE*fp = fopen("C:\\lsy.txt","a+");
int max, min=0, n;
int a[20];
int i;
fscanf(fp,"%d,", &a[i]);
for(i=0;i<n;i++)
{
fscanf(fp,"%d,", &a[i]);
}
printf("\n");
a[max]=0;
for(i=0;i<n;i++)
{
if(a[i]>max)
{
max=a[i];
min=i;
}
}
fprintf(fp,"%d %d", max, min);
printf("%d %d", max, min);
fclose(fp);
return 0;
}
解题思路:
本题遇到的问题及解决办法:
错误截图:
问题:问题太多了,有以下几个大问题
1.没法成功读入文件
2.输出最大值是一串乱码
3.运行结果没有保存到文件中
解决办法:1.看到助教发在群里的视频讲解,学习如何处理文件。还问了问李凌志如何写,然后不断更改代码
2.截图发给了二班黄延亮,因为他也出现过这种情况,故询问了一下他。然后,不断地看书上相似的例题,不断地调试发现a[i]的值不对劲,发现自己的文件编辑错误
3。因为后来有视频讲解就直接借用了其中简单的关闭文件的语句
心得:感觉自己学到的知识还是太少了,以至于做题存在极大的问题。这一个简单题就花了我长达4个小时的时间,还在写时感觉因为不会做到想哭了,写完了心情瞬间多云转晴
实验结果: