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

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

    include<stdio.h>

    include<stdlib.h>

    int main(void)
    {
    FILE *fp;
    int num [100];
    int i,j;
    char op;
    if((fp=fopen("c:新建文件夹howie.txt","r+"))==NULL)
    {
    printf("File open error ");
    exit(0);
    }

         while(	fscanf(fp, "%d%c",&num [i] ,&op) != EOF){
    	        printf("%d%c",num [i] ,op);
                i++;
        } 
    
    	printf("
    ");
    
    	 int index =0;
    	 for(j=0;j<i;j++){
    	 	      if(num [j]>num [index])
                  index =j;
    	 }
    	 printf("%d %d",num [index],index); 
    	   
    	   fprintf(fp,"
    ");   
           fprintf(fp,"最大值:%d 下标:%d",num [index],index);
    

    if(fclose(fp)){
    printf("Can not close the file ");
    exit(0);
    }
    return 0;
    }

    一、运行结果图

    二、思路
    1.使用“r+”的形式打开文本文件进行读/写

    2.把文本文档里的数值赋给数组

    3.进行比较,输出最大值及下标

    4.写入文本文档

    三、遇到的问题
    1.书上的例子使用for语句进行输出,但是当你并不知道文档里有多少数值时,无法写出条件表达式。所以第一想法是使用while语句,问题又来了,我并不知道while语句中的表达式应该怎么写。
    解决过程:看到打开文件进行的读写操作的 if 语句,便想写条差不多的,只不过其中的fopen()变成了fscanf(),却不知道怎么写后面==后的东西,

                        看到书上311页有一段话(文件中设置了文件结束符EOF.......读文件时通过判断从文件中读入的字符是否为EOF来决定循环是否继续),便也觉得和NULL差不多,也在网上查了查,稀里糊涂也对了。
    

    这是使用for语句,文档数值和for语句条件表达式不一样时运行的结果

    四、评价
    1.耗时长(不知道用了多久)
    2.不是很明白文件

  • 相关阅读:
    iOS的几种动画使用
    iOS工程师必备技能
    网络数据的下载(NSUrlconnection异步下载和NSstring同步下载)和UI界面数据的刷新(都是抛弃第三方库的一些本质)
    GCD定时器
    iOS开发的小技巧
    站在巨人的肩膀上
    跳转系统设置相关界面的方法
    微信分享
    网站 、内容
    加水印
  • 原文地址:https://www.cnblogs.com/xu23/p/10499404.html
Copyright © 2011-2022 走看看