一、本周作业
基础作业
请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出:
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。
1、实验代码
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp;
int max,t;
int a[10];
int i;
if((fp=fopen("D:\mywork\first.txt","a+"))==NULL)
{
printf("File open error!
");
exit(0);
}
for(i=0;i<5;i++)
{
fscanf(fp,"%d%c",&a[i]);
printf("%d%c",a[i]);
}
t=0;
max=a[0];
for(i=0;i<5;i++)
{
if(max<a[i])
{
max=a[i];
t=i;
}
}
fprintf(fp,"
%d %d",max,t);
printf("
%d %d",max,t);
if(fclose(fp) )
{
printf("Can not close the file!
");
exit(0);
}
return 0;
}
本题调试过程碰到问题及解决办:这个程序是按照书上的那个程序编写的在编写过程中出现了逗号读取不了等问题后来向助教请教了一下把fscanf(fp,"%d",&a[i]);printf("%d",a[i]);把这两句话的格式控制里边加上了%c就解决了,刚开始数值的定义类型也搞错了用了char定义在助教的解释下改成了int定义。
运行结果: