请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出:
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。
实验代码
include<stdio.h>
include<stdlib.h>
int main(){
FILE*fp;
int n,i,max;
int a[10];
if((fp=fopen("F:\C\lijian.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;
}
实验过程中遇到的问题
1.w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。
2.w 打开只写文件
3.对fopen不懂
流程框图
运行结果截图
学习感悟
对书上知识不熟悉,不能灵活运用