2019年春季学期第二周作业 基础作业+挑战作业

7-2 求最大值及其下标 (20 分)
本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。

输入格式:

输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。

输出格式:

在一行中输出最大值及最大值的最小下标,中间用一个空格分开。

输入样例:

6
2 8 10 1 9 10

输出样例:

10 2

基础作业要求:

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

实验代码(基础作业):

#include<stdio.h>
#include<stdlib.h>
int main()
{	
    FILE *fp;
    int n,x,y,z;
    if((fp=fopen("E:\zwx.txt","a+"))==NULL){  
    	printf("File open error!
");
    	exit (0);
	}
	fscanf(fp,"%d",&n);
    for(int i=0;i<n;i++){
    fscanf(fp,"%d",&x);
    if(i==0){
    	y=x;
    	z=0;
	}
    if(x>y){
    	y=x;
    	z=i;
	}
	}
    printf("%d %d",y,z);
    fprintf(fp,"
%d %d",y,z);
    
    if(fclose (fp)){  
    	printf("Can not close the file!
");
    	exit (0);
	}  
	return 0;
}

设计思路(基础作业):

(有点瑕疵,不过问题不大(指有几个判定框应该是流程框而不是判定框))

对这次作业的评价(基础作业):

遇到的问题以及解决方法:
1)遇到的问题:
问题1:无法将数据从文本里提取出来使用.
问题2:无法将数据正确输入文本里.
2)解决方法:
方法1:从书上的示例代码找到打开文件还有关闭文件以及使用文本的代码.
方法2:通过翻书寻找方法,发现使用fprintf函数输入就可以输入.

用时:4小时
心得:第一次接触文件有关的程序,对指针和文件读写的函数还不太熟悉,一点点修改把程序完成了,还是不够熟练.

运行结果截图(基础作业):

运行程序前

运行程序后


挑战作业要求:

给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。

实验代码(挑战作业):

#include<stdio.h>
#include<stdlib.h>
int main()
{	
    FILE *fp;
    int n,m=0,x,y,a=0,b=0,c=0;
    if((fp=fopen("E:\zwx.txt","a+"))==NULL){  
    	printf("File open error!
");
    	exit (0);
	}
	fscanf(fp,"%d",&n);
    for(int i=0;i<n;i++){
    fscanf(fp,"%d",&x);
    if(x==0){
    	a++;
	}
	if(x>0){
		b++;
		m=m+x;
	}
	if(x<0){
		if(c==0){
			y=x;
		}
		if(x>y){
			y=x;
		}
		c++;
	}
}
   if(a!=0&&b==0){
   	printf("0");
   }
   if(b!=0){
   	printf("%d",m);
   }
   if(a==0&&b==0&&c!=0){
   	printf("%d",y);
   } 
    if(fclose (fp)){  
    	printf("Can not close the file!
");
    	exit (0);
	}  
	return 0;
}

设计思路(挑战作业):

对这次作业的评价(挑战作业):

遇到的问题以及解决方法:
1)遇到的问题:
问题1:对只有负数和0的输出不了0
问题2:对有正负数混杂的输出不了
2)解决方法:
方法:全都是后面的条件设置不准确

用时:1.5小时
心得:第二次写这种类型的题,相比第一次做不知道文件的使用方式要好很多所以也就快了(画流程图和截图好麻烦)

运行结果截图(挑战作业):

运行程序前1

运行程序后1

运行程序前2

运行程序后2

运行程序前3

运行程序后3

运行程序前4

运行程序后4

原文地址:https://www.cnblogs.com/zhuwanxing/p/10492379.html