基础作业
请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入格式:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出格式:
在不删除原有文件内
容的情况下,将最大值和对应的最小下标数值写入文件.
代码:
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
FILE*fp;
int a[6],i,x;
if((fp=fopen("F:\rsz.txt","a+"))==NULL)
{
printf("File open error!
");
exit(0);
}
for(i=0;i<6;i++)
{
fscanf(fp,"%d,",&a[i]);
printf("%d",a[i]);
}
x=0;
for(i=1;i<6;i++)
if(a[i]>a[x])
x=i;
printf("%d%d",a[x],x);
fprintf(fp,",max=%d,index=%d",a[x],x);
if(fclose(fp)){
printf("Can not close the file!
");
exit(0);
}
return 0;
}
设计思路
本题遇到的问题及解决方法;
起初自己连文件都没建,后来建了文件,但程序不能把文件的数据读进去,后来把文件的扩展名打开后才程序才能读出数据。
程序经过几次修改后才行,起初程序虽然能读出数据了,但必不能写,和追加,后来把程序中的r改成了a+解决了这个问题。
运行结果
本题用时3小时。
学习进度条
学习感悟:
通过这次作业我感觉我上课听的不够认真,上完课后没又及时看书,后来做题目的时候,感觉自己没学过,根据课本是的例题编出了程序,后经过同学帮忙才做出了最后的程序,经过这次作业我发现自己在编程中的很多细节都不明白,比如因为格式很多符号都不能乱加。在以后的学习中我会多多看书,在网上看看教程,丰富自己的知识。