zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    TypeScript 里的 module 概念
    SAP Spartacus Definition of Done
    SAP Commerce Cloud 新一代 UI Spartacus 和 Customer Data cloud 的集成
    关于 SAP Spartacus 和 SmartEdit 集成的问题
    Linux Boot,Kernel 和 Service 介绍
    Linux 的发展历史,设计哲学和一些常用的术语介绍
    SAP Fiori Elements 公开课第三单元学习笔记
    SAP Fiori Elements 公开课第二单元视频的台词和课程主要内容
    SAP Fiori Elements 公开课第二单元学习笔记:Fiori Elements 架构
    qt-事件处理的方式
  • 原文地址:https://www.cnblogs.com/zhuwanxing/p/10492379.html
Copyright © 2011-2022 走看看