输入一个N,代表数有N个,再输入N个数,求这N个数的所有连续子序列中最大...

发布网友 发布时间:14小时前

我来回答

3个回答

热心网友 时间:6分钟前

#include <stdio.h>
int main(void)
{
int n,i,num,max=0;
printf("将输入的个数为:")
scanf("%d",&n);
printf("输入一列整数:");
scanf("%d",&max); //非循环读取第一个数
for(i=0;i<n;i++) //循环读取后面的数
{
scanf("%d",&num);
if(num>max)max=num; //进行比较
}
printf("最大的数是%d\n",max);
return 0;
}
如果要用数组完成的话是这样:
#include <stdio.h>
int main(void)
{
int n,i;
int *num;
printf("将输入的个数为:")
scanf("%d",&n);
printf("输入一列整数:");
for(i=0;i<n;i++)
{
scanf("%d",&num[i]); //把数存入数组中
}
for(i=0;i<n;i++)
{
if(num[i]<mun[i+1]) //循环进行比较
{
num[i] = num[i+1];
}
}
printf("最大的数是:\n",num[n]);
return 0;
}

热心网友 时间:4分钟前

所有连续子序列中最大的值?最大和的连续子序列?C++的~自己改去#include<fstream>
using namespace std;
ifstream fin("in.txt");
ofstream fout("out.txt");
int main()
{
int N;
while(1)
{
fin>>N;
if(N==0)
break;
int *a;
a=new int[N];
int i,max=0,now=0,b=0,mb=0,me=0;
for(i=0;i!=N;++i)
{
fin>>a[i];
now+=a[i];
if(now>max)
{
max=now;
me=i+1;
mb=b;
}
if(now<0)
{
b=i+1;
now=0;
}
}
for(i=mb;i!=me;++i)
{
fout<<a[i]<<",";
}
fout<<endl<<max<<endl;
delete [] a;
}
return 0;
}

热心网友 时间:6分钟前

你也在学C语言啊。。。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com