第二周基础学习

2019年春季学期第二周作业
基础作业
请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件

 

实验代码:

#include<stdio.h>

#include<stdlib.h>

 int main (void)

 {

      FILE*fp;

      int N,i,c=0;

      

       int a[N];

       if((fp=fopen("D:\\liuyinglan.txt","a+"))==NULL)

       {

              printf("File open error!\n");

                      exit(0);

       }

       fscanf(fp,"%d",&N);

       for(i=0;i<N;i++)

       {

              fscanf(fp,"%d",&a[i]);

              printf("%d ",a[i]);

              if(a[i]>a[c]){

                     a[c]=a[i];

                   c=i;

                }

       }

       printf("\n%d %d",a[c],c);

              fprintf(fp,"\n%d %d",a[c],c);

               exit(0);

        if(fclose(fp))

               {

               printf("Can not close the file!\n");

                         exit(0);   

                     }

     return 0;

 }

正确截图:

设计思路:

第一步:首先自己要弄一个保存好了的数据文件;

第二步:写代码,要引用头文件#include<stdlib.h>;

第三步:要引用定义文件指针,FILE*FP,与此同时要定义我们所需要的变量;

第四步:就是要选择打开文件,在这里我们需要判断一下文件是否存在,在此要输入你的文件地址,也就是文件名,接下来就是

进行文件的处理,对数据进行读取存到变量,把与文件有关的代码编写出来,然后在关闭文件;然后编译运行看是否正确,

遇到的问题:

一开始弄不清楚这个到底是什么意思,经过一个多小时的认真看书,动手操作,大概明白了这个是这样做的;

在写代码的过程中那个文件地址弄错了,本来是两根斜杆的疏忽只用了一根,

然后就是对fscanf的理解问题,刚开始不理解其含义和作用,原来就是从文件中获取输入值,

文件的建立出现错误,一开始没有把文件建在相应的地方,结构导致一直出现文件为空的结果;

 

错误截图:

解决方法:

看书本上的例题,然后仔细进行揣摩,同时向知道做的同学请教,和小组同学进行编程,把错误给助教看,寻求帮助;

猜你喜欢

转载自www.cnblogs.com/lyl68/p/10498929.html