2019年春季学期第二周作业 基础作业+附加作业
基础作业
请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。
输入格式:
请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
输出格式:
在不删除原有文件内
容的情况下,将最大值和对应的最小下标数值写入文件。
程序
#include<stdio.h>
#include <stdlib.h>
main()
{
FILE *fp,*FP;
char filename[30],str[30];
int a[10],i,t,b;
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("cannot openfile");
exit(0);
}
//建立文件以及判断是否文件存在
getchar();
gets(str);
fputs(str,fp);
fclose(fp);
//将数据输入文件
FP=fopen(filename,"r+");
for(i=0;i<10;i++)
{
fscanf(FP,"%d,",&a[i]);
}
//将文件中数据输出
t=a[0];
for(i=0;i<10;i++)
if(t<a[i])
{
t=a[i];
b=i;
}
//进行数据计算判断大小
fprintf(FP,"%d,%d",t,b);
//将数据输入文件
fclose(FP);
//关闭文件
}
设计思路
一,建立文件
二,将数据输入文件
三,将文件中数据输出
四,将数据进行运算判断大小
五,将数据输入文件
3)本题调试过程碰到问题及解决办法
问题:对建立一个新文件不会
解决:文件可以直接用fopen(“文件名,"w")或者char filename[30];fopen(“文件名,"w")
4).运行结果截图
5).本题用时30分钟 自学能力较弱对特定函数意义未知比如说grtchar()是输入一个字符但在文件中含义不知,在找但没有找到,继续寻找中……
附加作业——不知对错
给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。
具体要求参看邹欣老师博客 现代程序设计作业2
程序
#include<stdio.h>
int main()
{
int Array[1000],n,i,a,b=0,max;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&Array[i]);
}
max=Array[0];
for(i=0;i<n;i++)
{
a=i;
b=0;
for(a;a<n;a++)
{
b=b+Array[a];
if(max<b)
{
max=b;
}
}
}
printf("%d",max);
}
设计思路
一,建立数组
二,将数组中数据进行运算使用两个循环进行大小比较
三,将文件中数据输出
3)本题调试过程碰到问题及解决办法
问题:写程序难度较小(如果我对了的话),读题困难,一直不理解子数组,以及是求几维数组,一维感觉难度不大,二维没思路
4).运行结果截图
5).本题用时3小时30分钟,30用与写与调试,3小时阅读思考
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 | ||||||||
3/2-3/8 | 3天 | 300 | 指针、文件、数组 | getchar()不知道 |