zoukankan      html  css  js  c++  java
  • 第二周作业

    2019年春季学期第二周作业

    基础作业
    请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
    输入:

    请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
    

    输出

    在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。
    

    (一)实验代码:

    #include<stdio.h> 
    #include<stdlib.h>
    int main()
    {
    	FILE * fp;    
    	int i,max,n;
    	scanf("%d",&n);
    	int a [n];
    	char op=',';
    	
    	if((fp = fopen ("D:\yanghucai.txt","r+")) == NULL)    
    	{
    		printf ("File open error!
    ");
    		exit(0);
    	}
    	
    	for(i=0;i<n;i++)
    		fscanf (fp,"%d%c",&a [i],&op);
    		max=0;
    	for(i=1;i<n;i++)
    		if(a [i]>a[max])
    		max=i;
    		fprintf (fp,"
    %d %d",a [max],max);
    		if(fclose (fp) ){
    		   printf ("Can not close the file!
    ");
    		   exit(0);
    		}
    		return 0;
    }
    
    

    (二)设计思路

    (三)实验遇到的题及解决方案

    第一次接触文件没有思路,老师上课所讲的听得很迷糊,没咋听懂,查阅书上关于文件这一章的知识点吗,懂得了r+是打开二进制文件进行写和读。通过书上的例子渐渐的找到了自己的思路。刚开始在if((fp = fopen ("D:yanghucai.txt","r+")) == NULL) 这一行代码中我居然不知道D的意思,这原来是磁盘的类型,误在C盘中建立了请建立以自己英文名字命名的txt文件,导致文件一直打开错误。然后就是这个r+问题,我打代码时,还是打成了r,有室友的提醒才改过来。最后就是这个回车问题,我一直用固定思维把它放在所输出的结果后面,但是这个题要放前面。这几个小错误耗费了我四个小时的时间,看来对c语言的理解还处在一个比较浅的层次。

    四,运行结果截图

    五,学习进度条。

    六,学习感悟。

    学了文件这一章,苦啊,上课听不太懂,只能靠自己看书慢慢摸索,如何把自己的代码用文件读和运行出来费了我好一番功夫,因为指针这一章还没教,只教了一维数组,所以觉得很难,只能不断看书,慢慢思索,实在不会就请教别人,学贵以恒,慢慢来吧。

  • 相关阅读:
    [bzoj1076]奖励关
    [bzoj1085]骑士精神
    [bzoj1082]栅栏
    [bzoj1084]最大子矩阵
    [bzoj1072]排列
    [bzoj1071]组队
    [bzoj1068]压缩
    [bzoj1061]志愿者招募
    [bzoj1059]矩阵游戏
    [bzoj1052]覆盖问题
  • 原文地址:https://www.cnblogs.com/wsyhc/p/10497808.html
Copyright © 2011-2022 走看看