12.1 文件

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

挑战作业
有能力的同学可以挑战一下:
给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。
具体要求参看邹欣老师博客 现代程序设计作业2
基础作业是必做项,挑战作业作为加分项。
以上两项作业,完成后请写好编程总结,并在博客园提交。

编程总结要求:
格式标准,程序正确,思路清晰(有流程图),有对自己作业的评价(存在的问题和解决办法、心得、完成作业的时间消耗),程序运行结果的截图或者效果录像。
实验代码:

include<stdio.h>

include<string.h>

include<stdlib.h>

int main (void)
{
FILE *fp;
int i,N,index;
char a[10];

if((fp=fopen("D:\c++\\husiyu.txt","w+"))==NULL)
{
    printf("File open  error!\n");
    exit(0);
}
scanf("%d\n",&N);
fprintf(fp,"%d\n",N);
for(i=0;i<N;i++)
    scanf("%d",&a[i]);
    fprintf(fp,"%d",a[0]);
    for(i=1;i<N;i++)
    fprintf(fp,",%d",a[i]);
    index=0;
    for(i=1;i<N;i++)
    if(a[i]>a[index])
        index=i;
    printf("%d %d",a[index],index);
    fprintf(fp,"\n%d %d",a[index],index);
if(fclose(fp)){
    printf("Can not close the file!\n");
    exit(0);
}
return 0;

}
设计思路:

总结:
1:不知道运用那种文件打开方式
解决:只能用“w“和“w+”打开最好
2.不了解各种输入,输出语句(scanf,fscanf,printf,fprintf)的区别
解决:scanf用于编译器(屏幕)的输入。fscanf用于直接输入到文件中

猜你喜欢

转载自www.cnblogs.com/husiyu/p/10502759.html