请问怎么排查这个格式错误?

咱就是写了个题,看起来格式已经很符合要求了,但是还是有问题

题目是天梯赛的题:
L1-008 求整数段和 (10 分)
给定两个整数A和B,输出从A到B的所有整数以及这些数的和。

输入格式:
输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。

输出格式:
首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。

输入样例:
-3 8
输出样例:
-3 -2 -1 0 1
2 3 4 5 6
7 8
Sum = 30

以下是我的代码:

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int A,B,S;
    int n=0;
    cin>>A>>B; 
    for(int i=A;i<=B;i++)
    {
        cout<<setiosflags(ios::right)<<setw(5)<<i;
        S+=i;
        n++;
        if(n%5==0)
        cout<<endl;
    }
    cout<<endl;
    cout<<"Sum = "<<S;
    return 0;
 } 

以下是我的运行结果:
-3 8
-3 -2 -1 0 1
2 3 4 5 6
7 8
Sum = 30

是在是看不明白哪里格式不符合要求了,还请多多指教

img

问题已找出,就是在输出的最后一行正好是5个数的时候,按照原来的代码会多换一行

格式错误的话,看看这些地方有疏漏没有,是不是完全符合输入输出格式

img

希望对题主有所帮助,望采纳!!

S没有初始化为0