第二周作业-基础作业

本文介绍了一个简单的C语言程序,该程序能够读取用户输入的一维数组,找出数组中的最大值及其对应的最小下标,并将这些信息写入以用户英文名命名的文本文件中。文章详细展示了代码实现过程,包括文件操作、数组处理和结果输出。

基础作业

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

输入:

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

输出

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

1.实验代码

#include<stdio.h>
#include<stdlib.h>
int main (void)
{
  FILE *fp;   //定义文件指针 
  int n,i,max;
  int count=0;
  char num[10];
  
  if((fp=fopen("F:\\f505-Yangling.txt","w+"))==NULL)  //运用if语句判断,建立新文本文件进行读或写 
  {
        printf("File open  error!\n");
        exit(0);
  }
   scanf("%d\n",&n);
   fprintf(fp,"%d\n",n);
   for (i=0;i<n;i++)    //将输入的数字输出到文件文本中 
   {
    scanf("%d",&num[i]);
     fprintf(fp,"%d,",num[i]);
  }
  max=num[0];
  for (i=1;i<n;i++)
    while (num[i]>max){
      max=num[i];
      count=i;
  }
    fprintf(fp,"\n%d %d",max,count);   //将最大值和下标输出到文件文本中 
  
  if(fclose(fp)){       //关闭文件 
        printf("Can not close the file!\n");
        exit(0);
  }
   return 0;
}

2.设计思路

流程图:

1579902-20190306160137328-1700210856.png

思路:
先定义文件指针,然后建立新文本文件,运用for语句进行输入同时将输入的数字写入文件文本中 ;
运用while语句进行判断将最大值和下标输出到文件文本中 ,最后关闭文件

3.本题遇到的问题及其解决方法

错误截图:
1579902-20190306161226760-1645780657.png

问题:我开始将输出最大值和下标写在了while语句里面
解决办法:将fprintf(fp,"\n%d %d\n",max,count);写到while 语句外面

注意事项:

1.是要通过代码建立一个新的文件文本,不是让我们在磁盘里面创建文档
2.我觉得文件打开方式用“w”也应该可以,进行只写,代码已经读过了

4.实验结果截图:

1579902-20190306162156348-155214478.png

1579902-20190306162207174-100397997.png

二、学习进度条

周/日期这周所花的时间代码行学到的知识点简介目前比较迷惑的题目
3/4-3/96小时89新建文件进行读写二位数组子数组的最大值的求和

三、学习感悟

我在这周学了怎么去新建文件 在文件中打印结果,还学了一维数组的使用,但是老师的挑战题目我不会做

转载于:https://www.cnblogs.com/lyx1314/p/10484049.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值