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!\n");
		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,"\n%d %d",y,x);
	if(fclose(fp)){
		printf("Can not close the file!\n");
		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函数移动指针位置。

posted @ 2019-03-06 15:45  hlywww  Views(363)  Comments(2Edit  收藏  举报