作业——3

第二周作业

一、基础作业

在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件

输入

请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔

输出

在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件。

实验代码
#include<stdio.h>
#include<stdlib.h>
int main (void)
{
    FILE * fp;
    int a[10];    
    int i, m, index = 0;
    
    if((fp=fopen("E:\\SuXiaoLong.txt","r+"))==NULL)
   {
            printf("File open error!\n");
        exit(0);
   }
    for(i=0; i<6; i++)
{
    fscanf(fp, "%d%c", &a[i]);
    printf("%d%c", a[i]);
 }
 m = a[0];
 for(i=0; i<6; i++)
{
    if(m<a[i])
    {
        m = a[i];
        index = i;
    }
}
printf("%d %d", m, index);
fprintf(fp,"%d %d", m, index);
    if(fclose(fp)){
        printf("Can not close the file!\n");
        exit(0);
    }
    return 0;
 }
    
设计思路

1580745-20190309142849698-580454831.png

本题调试过程碰到问题及解决方法
  • 1、总是显示“File open error”。
    解决方法:首先文件是放在E盘中,多次修改代码无用,和助教对比至改至几乎一样都没用,然后发现我在文件属性中发现文件名后多了个“txt”,也就是我自己多打了个后缀......然后把后缀去掉后发现还是打不开,又经历多次尝试,最后助教告诉我放C盘难打开(此时文件被多次尝试放入了C盘中),放到E盘后不再显示“File open error”了,然后出现了新的错误......
  • 2、文件只读不写。
    解决方法:将代码中的“r”改为“r+”,“r+”为读写,应题目要求,应该用读写
  • 3、文件输出答案和文本毫无关系,是乱七八糟的数字。
    解决方法:多次尝试发现原代码“fscanf(fp, "%d", &a[i]);”应改成“fscanf(fp, "%d%c", &a[i]);”,因为“%c”格式对应的是单个字符,所以在输入多个字符的时候,它只会读取第一个字符,之后的字符是无法读入完成任务的。
  • 4、不知道算什么问题,就是有些地方要用fpintf输入到文件中......
  • 5、还有很多小错误,比如分号没有在英文输入法的情况下打,打出的是“:”冒号,还有就是忘记打分号......
运行结果截图

1580745-20190309140049313-1614825907.png

二、学习进度条

周/日期这周所花的时间代码行学到的知识点简介目前比较迷惑的问题
第二周4 hours35用c语言程序读取电脑中的文本文件并对其进行基础操作...

三、学习感悟

c语言是一门需要耐心的课程......耐心的找错误改错误,尽管错误的点极其愚蠢然后改正后发现了自己根本不知道错在哪的错误,还是要耐心找错误,然后改正,问大佬,慢慢把程序逐条改正,完善......(扶额)

转载于:https://www.cnblogs.com/s-su/p/10500667.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值