2019年春季学期第二周作业

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

 # include <stdio.h>
 # include <string.h>
 # include <stdlib.h>
 int main (void)
 {
     FILE * fp;
     int i,n,t,m=0;
     char op=',';
     scanf ("%d",&n);
     int a[n];

     if ((fp=fopen("E:\\C语言\\dengbo.txt","w+"))==NULL)
     {
	     printf ("File open error!\n");
	     exit (0);
     }
     fprintf (fp,"%d\n",n);
     for (i=0;i<n;i++)
     {
	     scanf ("%d",&a[i]);
             fprintf (fp,"%d%c",a[i],op);
     }
     t=a[0];
     for (i=0;i<n;i++)
     {
	     if (t<a[i])
	     {
		     t=a[i];
		     m=i;
	     }
     }
     fprintf (fp,"\n");
     fprintf (fp,"%d %d",t,m);
     if (fclose(fp))
     {
	     printf ("Can not close the file!\n");
	     exit (0);
     }
     return 0;
  } 

2、设计思路

3、本题调试过程碰到问题及解决方法
问题1:该程序无法运行;
解决方案:通过对比书上的示例,发现定义的整型数组的数组长度没有写定,即输入语句的位置放错了,便将scanf语句放 在数组前。
错误截屏

问题2:没有考虑换行和输出格式问题;
解决方案:通过与题中格式要求对照,在错误的代码中加入换行符‘\n’和字符‘,’。
错误截屏

4、运行结果截图

二、学习进度条

三、学习感悟
本次作业是在上周作业的基础上补充完成的,所以写出代码没有用多长时间,但由于一些格式问题,耽误了些时间,直到正确答案出来总共花了一个小时。虽然不是很难,但是对于代码中的一些英文不是很熟练,需要对照书才能写出来,也许是因为第一次做这种类型的题吧,总之需要多练习!

posted @ 2019-03-08 00:05  D***B*  阅读(169)  评论(2编辑  收藏  举报