请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从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输入输出到屏幕上。 学习感悟:感觉自己看书有点看不懂了,懵逼仔了。