第二周作业

#include<stdio.h>
#include<stdlib.h>
 int main (void)
 {
     FILE*fp;
     int N,i,m=0;
    
    int num[N];
    if((fp=fopen("D:\\leisiqian.txt","a+"))==NULL)
    {
        printf("File open error!\n");
                exit(0);
    }
    fscanf(fp,"%d",&N);
    for(i=0;i<N;i++)
    {
        fscanf(fp,"%d",&num[i]);
        printf("%d ",num[i]);
        if(num[i]>num[m]){
            num[m]=num[i];
             m=i;
          }
    }
    printf("\n%d %d",num[m],m);
        fprintf(fp,"\n%d %d",num[m],m);
            exit(0);
        if(fclose(fp))
            {
            printf("Can not close the file!\n");
                exit(0);    
            }
       return 0;
 }

 

设计思路:这是一个将文本内容计算出来的题目,首先我们在建立好文本后,开始写入文件,将建立好的文本地址输入,在那儿之后,就是读取文本文件,然后后面的是上周找最大值及其最小坐标的运算,将文本中的数值计算出来。最后就是输出数值。

流程图: 定义变量→定义文本指针,写入文件→1,找到文本则进行for循环的运算→读取文件与关闭文件

                                                                         →2,未找到文本,输出File open error!

所遇到的问题与解决方法:可以说在了解完题目后,以为就是依葫芦画瓢,结果读取文件的时候一直出现乱码,刚开始我在尝试了很多遍未果时,我询问了我哥哥,我哥哥大概知道了意思,他要我先去掉运算的代码,弄清楚文件的写入,读取。于是我知道,我可能是没有写入这一步,又或者我是读取出了错。因为不太好意思再麻烦我哥,,我参照了博客园结对编程的代码,且去掉了运算,这时助教也辛勤的发布了如何写读文件并详细讲解,我当时并未发现我的代码有什么不同,这时就是文本的地址可能有错误,在新磁盘建立了新文本,将地址重新写入,这里我删了printf,导致又出现了乱码。第二周作业

 

 

 

 

第二周作业