2019年春季学期第二周作业
请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出:
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。
1. 代码块
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE*fp;/*定义指针文件*/
int i,a[10],n,b=0,t=0;
/*打开文件,进行写入操作*/
if((fp=fopen("D:\2019年春季学期第二周作业\chenjianxiong.txt","w"))==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]);
}
b=a[0];
for(i=1;i<n;i++)
if(b<a[i]){
b=a[i];
t=i;
}
fprintf(fp,"
%d %d
",b,t);/*写入文件*/
/*关闭文件*/
if(fclose(fp)){
printf("Can not close the file!
");
exit(0);
}
return 0;
}
2. 设计思路
此次代码编写是根据用户信息加密和校验进行改编而来,相对来说。这个题目只需在中间换上上次所编写的程序就ok了。其他定义指针文件,打开文件,写入文件,关闭文件等等都是一样的。
流程图:
3. 对自己作业的评价
问题和解决办法:在初次运行时,文本文档中是空白的,这是就比较纳闷了,于是就叫室友过来帮我看了看,原因出在了写入地址时没有表明在那个文档,也没有双斜杠(我自己开始写的地址:chenjianxiong.txt)除了这个错误。还有一个错误就是在主函数编写过程中循环过头了,导致答案为每个数组值和其下表数,当时的我还不是很清楚此题所要的答案是啥,也是在室友的点拨下去掉了一个大的循环。最后答案就正确了。
心得:此次做也自我感觉很好,有点感觉,很棒,以后继续加油。
完成作业的时间消耗:三四十分钟左右
4.程序运行结果的截图