最大子列和问题
例题:给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20。#include <stdio.h>
void main()
{
printf("请输入六个整数:\n");
int a;
int i=0,ThisSum=0,MaxSum=0;
for(i;i<=5;i++)//这里显示无效语句
scanf("%d",&a);
for(i;i<=5;i++)//这里显示无效语句
{
ThisSum+=a;
if(ThisSum>MaxSum)
MaxSum=ThisSum;
else if(ThisSum<0)
ThisSum=0;
}
}
把上面六个数输入运行不出来结果。
请问下到底哪里出错了,谢谢! 本帖最后由 柿子饼同学 于 2022-9-24 13:07 编辑
数组开小了
#include <stdio.h>
int main() // 返回值 int
{
printf("请输入六个整数:\n");
int a; // 你之前开的 5 , 最多才放 5 个元素
int i = 0, ThisSum = 0, MaxSum = 0;
for(i ; i <= 5; i++) // 这里可以不写
scanf("%d",&a);
for(i = 0; i <= 5; i++)// 这里要初始化为 0, 不然上面循环中i等于6, 这里就不运行了
{
ThisSum += a;
if(ThisSum > MaxSum)
MaxSum = ThisSum;
else if(ThisSum < 0)
ThisSum = 0;
}
printf("%d", MaxSum); // 你忘记输出了
return 0;
} 柿子饼同学 发表于 2022-9-24 13:02
数组开小了
谢谢啦
页:
[1]