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()不知道
原文地址:https://www.cnblogs.com/5236288kai/p/10488388.html