请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从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!
");
exit(0);
}
scanf("%d",&n);
fprintf(fp,"%d
",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,"
%d %d",a[max],max);
if(fclose(fp)){
printf("Can not close the file!
");
exit(0);
}
return 0;
}
实验过程中遇到的问题
一:
开始操作时,对于fopen不太熟悉,通过查找资料才明白 fopen函数的第一个参数是文件路径,第二个参数是打开方式,
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
二:
开始操作时对fscanf,fprintf不太明白与scanf,printf有什么区别,通过查找资料才明白fscanf,fprintf是输入输出到文件中,而scanf,printf输入输出到屏幕上。
流程框图
运行结果截图
学习进度条
月/日 |
这周所花时间 |
代码行 |
学到知识点 |
3/3-3/9 |
120min |
150行 |
fopen函数 |
学习感悟
在学习过程中遇到问题,一定要善于分析,但并不是一味的死磕,而是在借鉴他人的情况下分析自己为什么这样行不通。