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输入输出到屏幕上。

流程框图

运行结果截图

学习进度条

月/日 这周所花时间 代码行 学到知识点
3/3-3/9 120min 150行 fopen函数

学习感悟

在学习过程中遇到问题,一定要善于分析,但并不是一味的死磕,而是在借鉴他人的情况下分析自己为什么这样行不通。

posted @ 2019-03-09 16:04  朝暮为卿  阅读(183)  评论(4编辑  收藏  举报