基础作业
请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出
在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。
代码
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
FILE*fp;
int i,max,num=0;
int a[10];
if((fp=fopen("C:\Users\Administrator\Desktop\wenjian\llf.txt",,"r+"))==NULL)
{
printf("File open error! ");
exit(0);
}
for(i=0;i<6;i++)
{
fscanf(fp,"%d%c",&a[i]);
printf("%d%c",a[i]);
}
max=a[0];
for(i=0;i<6;i++)
{
if(max<a[i])
{
max=a[i];
num=i;
}
}
printf(" %d %d",max,num);
fprintf(fp," %d %d",max,num);
if(fclose(fp))
{
printf("Can not close the file! ");
exit(0);
}
return 0;
}
#include<stdlib.h>
int main(void)
{
FILE*fp;
int i,max,num=0;
int a[10];
if((fp=fopen("C:\Users\Administrator\Desktop\wenjian\llf.txt",,"r+"))==NULL)
{
printf("File open error! ");
exit(0);
}
for(i=0;i<6;i++)
{
fscanf(fp,"%d%c",&a[i]);
printf("%d%c",a[i]);
}
max=a[0];
for(i=0;i<6;i++)
{
if(max<a[i])
{
max=a[i];
num=i;
}
}
printf(" %d %d",max,num);
fprintf(fp," %d %d",max,num);
if(fclose(fp))
{
printf("Can not close the file! ");
exit(0);
}
return 0;
}
设计思路
基本形式根据书上的例题,结合上次作业就有了大体的结构,这次作业主要是文件的输入和输出,特别要注意的是文本的地址,不然就会打开错误,无法正常输入,还有就是fscanf和fprintf的使用,这个是我看了群里文件使用的基础视频,
遇到的问题
主要就是文件输入的实现,要把dev中代码和保存的文件放在一个文件夹里,这个是我看群里的文件使用基础视频里才知道的,还有就是从文件中导入数据要用fscanf(fp,"地址")才能使用文件中数据
正确的截图
错误的截图