• 文件中数组的最大值及其对应的最小下标


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

     #include<stdio.h>
     #include<stdlib.h>
     int main (void)
     {
      FILE * fp ;
      int a[10];
      int i,f=0,n;
      
      if ((fp=fopen("D:\chenyuan.txt","a+"))==NULL)
      {
       printf("File open error! ");
       exit(0);
     }
     scanf("%d",&n);
     fprintf(fp,"%d ",n);
      for (i=0;i<n;i++)
        {
      scanf("%d",&a[i]);
      fprintf(fp,"^%d,",a[i]);
           }
        for(i=0;i<n;i++) {
         if(a[f]<a[i])
            f=i;
        }
            printf("%d %d",a[f],f);
            fprintf(fp," %d %d",a[f],f);
            if(fclose(fp)){
            exit (0);
        }
            return 0; 
     }

    实验思路:定义一个数组,让它最多含有10个元素,定义文件指针,和数组名称,把这个数组输入到文件中去,再把每个元素的大小比较,把最大值机器下表输出出来

    错误截图(这个已经十多次修改之后距离成功最近的那次)

    解决方法

    开始的时候把括号的位置放在==后面,后面发现和书上的不对就改了if ((fp=fopen("D:\chenyuan.txt","a+"))==NULL)

    误以为只要在编译器上面输入就要在文件中也输入,解决方法,把fscanf改成fprintf,它是把数组元素在文件当中给输出出来

    for循环把i的值赋值成了1,把数组元素少输出了,解决方法:把i赋值为0


     

  • 相关阅读:
    将指定byte数组以16进制的形式打印到控制台
    Java输出当前的日期(年月日时分秒毫秒)
    JAVA API从MongoDB中读取数据
    Hbase API 写入操作代码,基于hbase-client 1.0.3版本
    关于ROW_NUMBER函数的使用(The use of ROW_NUMBER function )
    网络知识点
    C++学习笔记
    Linux网络编程--tinyhttpd
    Linux多线程编程
    inet_ntop返回值错误
  • 原文地址:https://www.cnblogs.com/I-FEAR-ONLY-TIME/p/10498105.html
Copyright © 2020-2023  润新知