一维环型数组

一 题目及要求:

题目:返回一个整数数组中最大子数组的和

要求(新加):①如果数组A[0]...A[j-1]首尾相邻,允许A[i-1]...A[n-1],A[0]...A[j-1]之和最大;②同时返回最大子数组的位置。

二 设计思想:

这个题目我们的思想还是延续以前一维数组的思想,只不过做了一点点改变,比如数字是五个,1,2,3,-1,-1.我们开辟的数组空间则是10个,

将这五个数再存一遍,也就是1,2,3,-1,-1,1,2,3,-1,-1.使用循环,是每次的循环数都数五个,比如第一次循环找出1,2,3,-1,-1中的

连续最大和,第二次循环则找出2,3,-1,-1,1中的最大连续数,以此类推。

三 实验代码

#include<iostream.h>
#include<time.h>
#include<stdlib.h>
int main()
{
    int arry[20];
    int start,end,i;
    long sum,max;
    cout<<"Please input 10 numbers:"<<endl;
    for( i=0;i<10;i++)
    {
        cin>>arry[i];
        arry[i+10]=arry[i];
    }
    max=arry[0];
    start=0;
    end=0;
    for(int j=0;j<10;j++)
    {
        sum=0;
        for(int k=j;k<10+j;k++)
        {
            sum=sum+arry[k];
            if(sum>max)
            {
                max=sum;
                start=j+1;
                end=k+1;
            }
        }
    }
    cout<<"MAX IS"<<" "<<max<<endl;
    cout<<"START:"<<"The"<<" "<<start<<"th"<<" "<<"number"<<"    "<<"END:"<<"The"<<" "<<end%10<<"th"<<" "<<"number"<<endl;
    cout<<"These numbers are:";
    for(int c=0;c<end-start+1;c++)
    {
        cout<<arry[start+c-1]<<"  ";
    }
}

四 实验截图

五 实验感想

这次实验我们最大的感想就是,如果一个程序搞懂了,再加一些条件,再做一些改变,都可以从最原始的程序找到突破口,

这次程序我们的主要思想和上次没有什么区别,只做了小改变就成功了,当堂就编了出来,所以也很兴奋,当然和搭档聪明的

脑袋也脱不开关系。

时间: 2024-10-11 10:28:53

一维环型数组的相关文章

在主方法中定义一个大小为50的一维整型数组,数组i名为x,数组中存放着{1,3,5,…,99}输出这个数组中的所有元素,每输出十个换一行

package hanqi; import java.util.Scanner; public class Test7 { public static void main(String[] args) { //在主方法中定义一个大小为50的一维整型数组,数组i名为x,数组中存放着{1,3,5,…,99}输出这个数组中的所有元素,每输出十个换一行 int [] x=new int[50]; int a =1; for(int i=0;i<50;i++) { x[i]=a; a+=2; } for(

按要求编写Java应用程序。 编写一个名为Test的主类,类中只有一个主方法; 在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1, 3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一 个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。

package com.homework.zw; public class work3 { public static void main(String[] args) {//定义数组x和y的类型 int[] x=new int[50]; char[][] y=new char[10][10]; int j =1; int n =0; //定义数组x的每一个元素 for(int i=0;i<50;i++) { x[i]=j; j=j+2; } System.out.println("一维数

编写一个名为Test的主类,类中只有一个主方法; 在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1, 3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一 个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。

package liu0915; import java.util.Random; public class Test0915sz { public static void main(String[] args) { int[] x=new int[50]; int j=1; for(int i=0;i<50;i++) { x[i]=j; j=j+2; } System.out.println("一维数组是:"); int n=0; for (int a=1;a<=5;a+

_13__锯齿型数组_JaggedArray

public class JaggedArray { public static void Main() { // 声明一个锯齿型数组,该数组有两个元素 int[][] myArray = new int[2][]; // 其中第一个元素是一个含有五个元素的数组 // 初始化myArray[0] myArray[0] = new int[5] {1,3,5,7,9}; // 其中第二个元素是一个含有4个元素的数组 // 初始化myArray[1] myArray[1] = new int[4]

给定一整型数组,若数组中某个下标值大的元素值小于某个下标值比它小的元素值,称这是一个反序

[问题] 找出反序的个数 给定一整型数组,若数组中某个下标值大的元素值小于某个下标值比它小的元素值,称这是一个反序. 即:数组a[]; 对于i < j 且 a[i] > a[j],则称这是一个反序. 给定一个数组,要求写一个函数,计算出这个数组里所有反序的个数. [代码] #include <stdio.h> #include <stdlib.h> #include <string.h> int sumNum = 0; void merge(int *a,

编程题:将数字0~5放入一个整型数组,并逆序输出数组

#include<stdio.h> void main() { int i,a[5]; for(i=0;i<5;i++)         /*给数组中元素赋值*/ a[i]=i; for(i=4;i>=0;i--)          /*逆序输出数组中元素值*/ printf("%3d",a[i]); printf("\n"); } 编程题:将数字0~5放入一个整型数组,并逆序输出数组,布布扣,bubuko.com

整型数组与vector对象之间的相互初始化

#include<iostream> #include<vector> #include<string> using namespace std; int main() { vector<int>::size_type i=0; int arr[10]={0,1,2,3,4,5,6,7,8,9}; //使用整型数组初始化一个vector对象 vector<int> vec(begin(arr),end(arr)); for(auto v:vec)

将一个任意整数插入到已排列的整型数组中,插入后,数组中的数仍保持有序

实现代码: package homework; import java.util.Scanner; public class HomeWork { public static void main(String[] args) { //將输入的数字插入到一个有序的数组中的合适位置 Scanner input = new Scanner(System.in); System.out.println("请输入一个数字:"); int num = input.nextInt(); //有序的整

基于svg中的path画40%表示的环型图(js类库Rapha&#235;l)

 一.可供参考的文档资料. raphaeljs官网:http://raphaeljs.com/ w3c关于path的介绍:http://www.w3.org/TR/2003/REC-SVG11-20030114/paths.html mdn关于path的介绍(英文版):https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths mdn关于path的介绍(中文版):https://developer.mozilla.org/zh-