博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2019年春季学期第二周作业编程总结
阅读量:5163 次
发布时间:2019-06-13

本文共 1323 字,大约阅读时间需要 4 分钟。

2019年春季学期第二周作业

基础作业
请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。

1,实验代码

#include
#include
main(){ FILE *fp; int i,n,max,min,I,b=1; if((fp=fopen("G:\\c语言学习\\chenshuyao.txt","a+"))==NULL) { printf("file open error!\n"); exit(0); } fscanf(fp,"%d",&n); printf("%d\n",n); int a[n]; for(i=1;i<=n;i++) { fscanf(fp,"%d",&a[i]); printf("%d ",a[i]); } for(I=1;I<=n;I++) { if(a[b]
<=n) { b=I; max=a[I]; min=b-1; } } printf("\n%d %d",max,min); return 0;}

2,设计思路

代码分为两部分,第一部分(8-20行)用来打开文件和输入文件中的数据至程序中,第二部分(21-30)用来处理上部分输入的数据,从中找出最大值及其对应的最小下标。第一部分需要对文件进行操作,所以我使用了指针。一维数组用来记录文件中的所有数据,可以用在第二部分的数据处理中。以下为流程图。

1582133-20190309160038987-181816958.png

3,调试时遇到的问题及解决方法

(一),我在使用fscanf函数时的一个误区:

程序在运行到“输入文件中的数据”这一步时会出现数据读取不到而导致出现随机值的结果,如下图所示:1582133-20190309160202659-566303261.jpg

我在查阅了相关资料后发现fscanf在读取到空格或回车后就会结束,而我的文件格式是这样的:1582133-20190309160250699-1651835318.jpg

每个数据间是用逗号隔开的,而我定义的数组是整型的,这就导致fscanf读取错误。解决方案就是将所有逗号换成空格。

(二),一些与文件读取相关的函数用法

很明显,之前的那个错误是因为我对fscanf的不了解导致的,所以我将一些相关函数的功能和头文件都了解了一下。
fscanf: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。
fopen:在当前目录下打开一个文件,调用形式为:文件指针名=fopen
< stdlib.h>:可以用在文件读取相关的程序中

4,运行结果截图

1582133-20190309160316475-2103467367.png

转载于:https://www.cnblogs.com/noacgnnolife/p/10501585.html

你可能感兴趣的文章
smarty模板(转载)
查看>>
四年多没碰C++了。。。
查看>>
nginx负载均衡 ->Tomcat8集群 -> sentinel集群 -> redis3主从
查看>>
Tomato的init启动流程分析(原创)
查看>>
java中static使用之静态方法注意点
查看>>
方格取数
查看>>
用Darwin和live555实现的直播框架
查看>>
Struts 2 常用技术
查看>>
tr069开源协议EasyCwmp移植
查看>>
Android 开发工具类 33_开机自运行
查看>>
pom仓库
查看>>
第五篇、微信小程序-swiper组件
查看>>
SecureCRT来上传和下载文件
查看>>
core文件
查看>>
python练习 遍历目录os.walk()
查看>>
box-sizing
查看>>
浅谈流形学习(转)
查看>>
单向链表
查看>>
O2耳放 DIY 模拟放大
查看>>
Linux 下源码编译安装 vim 8.1
查看>>