zoukankan      html  css  js  c++  java
  • 2019年春季学期第二周作业编程总结

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

    1,实验代码

    #include<stdio.h>
    #include<stdlib.h>
    main()
    {
    	FILE *fp;
    	int i,n,max,min,I,b=1;
    
    	if((fp=fopen("G:\c语言学习\chenshuyao.txt","a+"))==NULL)
    	{
    		printf("file open error!
    ");
    		exit(0);	
    	}
    	fscanf(fp,"%d",&n);
    	printf("%d
    ",n);
    	int a[n];
    	for(i=1;i<=n;i++) 
    	{
    	fscanf(fp,"%d",&a[i]);
    	printf("%d ",a[i]);	
    	}
    	for(I=1;I<=n;I++)
    	{
    		if(a[b]<a[I]&&I<=n)
    		{
    			b=I;
    			max=a[I];
    			min=b-1;
    		}
    	}
    	printf("
    %d %d",max,min);
    	
    	return 0;
    }
    

    2,设计思路

    代码分为两部分,第一部分(8-20行)用来打开文件和输入文件中的数据至程序中,第二部分(21-30)用来处理上部分输入的数据,从中找出最大值及其对应的最小下标。第一部分需要对文件进行操作,所以我使用了指针。一维数组用来记录文件中的所有数据,可以用在第二部分的数据处理中。以下为流程图。

    3,调试时遇到的问题及解决方法

    (一),我在使用fscanf函数时的一个误区:
    程序在运行到“输入文件中的数据”这一步时会出现数据读取不到而导致出现随机值的结果,如下图所示:

    我在查阅了相关资料后发现fscanf在读取到空格或回车后就会结束,而我的文件格式是这样的:
    每个数据间是用逗号隔开的,而我定义的数组是整型的,这就导致fscanf读取错误。解决方案就是将所有逗号换成空格。

    (二),一些与文件读取相关的函数用法
    很明显,之前的那个错误是因为我对fscanf的不了解导致的,所以我将一些相关函数的功能和头文件都了解了一下。
    fscanf: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。
    fopen:在当前目录下打开一个文件,调用形式为:文件指针名=fopen
    < stdlib.h>:可以用在文件读取相关的程序中

    4,运行结果截图

  • 相关阅读:
    Dialog 对话框的文字与输入框不对齐
    ag-grid动态生成表头及绑定表数据
    ag-grid实时监测复选框变化
    Java-分页工具类
    Java-日期转换工具类
    文件上传与下载
    IDEA的安装与激活
    熟悉IDEA工具的使用
    缓存三大问题的解决办法
    制作一个省份的三级联动菜单
  • 原文地址:https://www.cnblogs.com/noacgnnolife/p/10501585.html
Copyright © 2011-2022 走看看