本周完成的作业:
请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。
1).实验代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(void)
{
FILE*fp;
long big[100], i, shu=0;
if((fp=fopen("E:\lidaichuan\ldc.txt","a+"))==NULL){
printf("File open error!
");
exit(0);
}
for(i=0; i<6; i++){
fscanf(fp,"%d,", &big[i]);
shu=(big[i]>shu)?big[i]:shu;
printf("%d
",big[i]);
}
for(i=0; i<6; i++){
if(shu==big[i]){
fprintf(fp,"
%d %d", shu, i);
printf("%d %d", big[i], i);
break;
}
}
if(fclose(fp)){
printf("Can not close the file!
");
exit(0);
}
return 0;
}
设计思路
3)本题做对过程碰到问题及解决办法
不知道错在哪里,开始一直以为是文件目录错误,也确实是的。于是开始一直在搞文件目录,后来搞了起码四十多分钟,终于想到使用它给我新建的txt,我在里面输入了数字,然后就成功的读出来了文件里的数字。
不懂为什么一直给我创造新文件目录,而且各种文件目录名都试过,加txt啊。不加txt啊。加两个txt啊,反正就是给我新的文件目录。
这是不知道怎么读取逗号,后来呀,灵光一闪,在%d后加一个和输入的逗号类型一样的逗号就行
这是如果数字不够的话,会读取零
正确截图
对自己作业的评价
觉得自己很蠢,这么简单的东西搞了几个小时,脑子太死了。并且这个程序只能写入一次,不能多次写入。还是要多多学习。
室友何磊找到了不能多次写入的原因并告诉了我,原因是:不是只能写入一次,而是写入的数据覆盖了上一次数据。用fseek函数
学习进度条
周 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第二周 | 六个多小时 | 153 | 文件的打开与关闭,读取数据与写入数据 | 指针的用法还是有点不会 |
学习感悟
基本上是自学啦,要是没有自制力的话根本啥也学不到,所以得自觉。
学习得速度还是不够快,得尽力多学习一点,还得把前面跳过的知识自己好好学好。