第二周作业
请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。
代码
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fl;
int num[20];
if((fl=fopen("F:\新建文件夹 (2)\CY.txt","r+"))==NULL) /*打开文件*/
{
printf("File open error!
");
exit(0);
}
for(int i=0;i<10;i++)
{
/*从文件中读入数值保存到变量中*/
fscanf(fl,"%d",&num[i]);
}
int d=0;
int t=num[0];
for(int i=0;i<10;i++)
{
if(num[i]>t)
{
t=num[i];
d=i;
}
}
printf("%d %d
",t,d);/*输出最大值和对应的最小下标数值到屏幕*/
fprintf(fl,"
%d %d",t,d); /*将最大值和对应的最小下标数值写入文件*/
if(fclose(fl))
{
printf("Can not close the file!
");
exit(0);
}
return 0;
}
思路流程图
错误截图
错误原因
只对文件进行了读取而没有写入
解决方法
将r
改为r+
,将只读
变为读/写
运行截图
耗时 两小时
总的来说该题的难度并不大,如果认真听了课,并且自己看了书的话,还是能够写得出的
学习进度
周/日期 | 这周所花的时间 | 代码行数 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
3/4-3/15 | 15小时 | 200 | 文件 | C预处理器 |