第二周基础学习
2019年春季学期第二周作业
基础作业
请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件
实验代码:
#include<stdio.h>
#include<stdlib.h>
int main (void)
{
FILE*fp;
int N,i,c=0;
int a[N];
if((fp=fopen("D:\\liuyinglan.txt","a+"))==NULL)
{
printf("File open error!\n");
exit(0);
}
fscanf(fp,"%d",&N);
for(i=0;i<N;i++)
{
fscanf(fp,"%d",&a[i]);
printf("%d ",a[i]);
if(a[i]>a[c]){
a[c]=a[i];
c=i;
}
}
printf("\n%d %d",a[c],c);
fprintf(fp,"\n%d %d",a[c],c);
exit(0);
if(fclose(fp))
{
printf("Can not close the file!\n");
exit(0);
}
return 0;
}
正确截图:
设计思路:
第一步:首先自己要弄一个保存好了的数据文件;
第二步:写代码,要引用头文件#include<stdlib.h>;
第三步:要引用定义文件指针,FILE*FP,与此同时要定义我们所需要的变量;
第四步:就是要选择打开文件,在这里我们需要判断一下文件是否存在,在此要输入你的文件地址,也就是文件名,接下来就是
进行文件的处理,对数据进行读取存到变量,把与文件有关的代码编写出来,然后在关闭文件;然后编译运行看是否正确,
遇到的问题:
一开始弄不清楚这个到底是什么意思,经过一个多小时的认真看书,动手操作,大概明白了这个是这样做的;
在写代码的过程中那个文件地址弄错了,本来是两根斜杆的疏忽只用了一根,
然后就是对fscanf的理解问题,刚开始不理解其含义和作用,原来就是从文件中获取输入值,
文件的建立出现错误,一开始没有把文件建在相应的地方,结构导致一直出现文件为空的结果;
错误截图:
解决方法:
看书本上的例题,然后仔细进行揣摩,同时向知道做的同学请教,和小组同学进行编程,把错误给助教看,寻求帮助;