zoukankan      html  css  js  c++  java
  • 文件中数组的最大值及其对应的最小下标

    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


     

  • 相关阅读:
    HDOJ 1677 Nested Dolls(LIS+Dilworth)
    POJ 1548 Robots (Dilworth)
    POJ 1065 Wooden Sticks
    第三百四十天 how can I 坚持
    第三百三十九天 how can I 坚持
    第三百三十八天 how can I 坚持
    第三百三十七天 how can I 坚持
    第三百三十六天 how can I 坚持
    第三百三十五天 how can I 坚持
    第三百三十四天 how can I 坚持
  • 原文地址:https://www.cnblogs.com/I-FEAR-ONLY-TIME/p/10498105.html
Copyright © 2011-2022 走看看