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

    一、本周完成的作业:

    求最大值及其下标

    本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。

    输入格式:

    输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。

    输出格式:

    在一行中输出最大值及最大值的最小下标,中间用一个空格分开。

    输入样例:

    6
    2 8 10 1 9 10

    输出样例:

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

    输入:

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

    输出

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

    1).实验代码

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

    2).设计思路

    3).本题调试过程碰到的问题以及解决办法


    1.读入文本中的数据失败了,并且自动创建了一个新的同名文本文件,且将数据写入了该文本文件;机缘巧合之下发现这个窗口
    中的文件名为helei.txt,明白了初次创建的文件电脑会自动在文件名后添加“.文件格式”(但不会显示出来)而导致文件路径错误,从而导致读取失败,将代码中的helei改为helei.txt后读取数据成功。
    2.多次运行代码,文本没有发生改变,追加失败,在一个多小时的尝试下,终于意识到可能是指针位置不处于文本末尾,导致写入的数据覆盖了上次写入的数据,根据这一想法,百度了将指针移至文本末尾的方法(如何用fseek函数调整指针的位置),在写入数据之前加一行fseek(fp, 0L, SEEK_END);使指针移至文本末尾,再次尝试发现成功了!

    4).运行结果截图

    二、学习进度条

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    3/2-3/8 2h 23行 数组
    3/9-3/15 3h 29行 读取文件数据

    三、学习感悟

    除读取文件数据代码的学习外,还学习了用fseek函数移动指针位置。

  • 相关阅读:
    [LeetCode]Subsets II
    [LeetCode]Subsets
    [LeetCode]Combinations
    [LeetCode]Minimum Window Substring
    [LeetCode]Search a 2D Matrix
    [LeetCode]Edit Distance
    [LeetCode]Simplify Path
    Adaboost算法
    [LeetCode]Text Justification
    31、剑指offer--从1到n整数中1出现次数
  • 原文地址:https://www.cnblogs.com/hlywzj/p/10483159.html
Copyright © 2011-2022 走看看