2019第二周作业
请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出:
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。
实验代码
include<stdio.h>
include<stdlib.h>
int main(){
FILE*fp;
int n,i,max;
int a[10];
if((fp=fopen("F:\C\liujin.txt","w+"))==NULL)
{
printf("File open error!\n");
exit(0);
}
scanf("%d",&n);
fprintf(fp,"%d\n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
fprintf(fp,"%d",a[0]);
for(i=1;i<n;i++)
fprintf(fp,",%d",a[i]);
max=0;
for(i=0;i<n;i++)
if(a[i]>a[max])
max=i;
printf("%d %d",a[max],max);
fprintf(fp,"\n%d %d",a[max],max);
if(fclose(fp)){
printf("Can not close the file!\n");
exit(0);
}
return 0;
}
实验过程中遇到的问题
一:
开始操作时,对于fopen不太熟悉,通过查找资料才明白 fopen函数的第一个参数是文件路径,第二个参数是打开方式,
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
二:
开始操作时对fscanf,fprintf不太明白与scanf,printf有什么区别,通过查找资料才明白fscanf,fprintf是输入输出到文件中,而scanf,printf输入输出到屏幕上。
学习感悟:感觉自己看书有点看不懂了,懵逼仔了。