IVVANO 2022-03-21 18:03 采纳率: 100%
浏览 52
已结题

请问为什么在本地vs上运行输入输出都没啥问题,但是上传到oj系统就是会答案错误呢?实在不会找&找不到哪里不对,不熟悉oj,求指导

img

img

img



#include<iostream>
using namespace std;

template <class T, int N>
class SeqList {
public:

    int Locate(T);
    T Delete(int i);
    void Insert(int i, T x);
    void PrintList();
    void Operation(char ch);
private:
    T data[N];
    int length = 0;
    
};

template <class T, int N>
void SeqList<T, N>::Insert(int i, T x)
{
    if ((i < 1) || (i > length + 1))    throw  "插入位置异常";
    if (length >= N)                    throw"上溢";
    int j;
    for (j = length; j >= i; j--)
    {
        data[j] = data[j - 1];
    }
    data[i - 1] = x;
    length++;
}

template <class T, int N>
T SeqList<T, N>::Delete(int i)
{
    if ((i < 1) || (i > length))    throw"位置异常";
    if (length == 0)                throw"下溢";

    T temp = data[i - 1];
    for (int j = i; j < length; j++)
    {
        data[j - 1] = data[j];
    }
    length--;
    return temp;
}

template<class T, int N>
int SeqList<T, N>::Locate(T x)
{
    data[0] = x;
    for (int i = length; data[i] != x; i--)
    return i;
}

template<class T, int N>
void SeqList<T, N>::PrintList()
{
    if (length == 1)
    {
        cout << data[0];
    }
    else
    {
        for (int i = 0; i < length - 1; i++)
        {
            cout << data[i] << " ";
        }
        cout << data[length-1];
    }
    
    cout << endl;
}

template<class T, int N>
void SeqList<T,N>::Operation(char ch)
{
    int x;
    T y;
    switch (ch)
    {
    case 'i':
        cin >> x >> y;
        Insert(x, y);
        break;
    case 'd':
        cin >> x;
        Delete(x);
        break;
    case 'l':
        cin >> y;
        x=Locate(y);
        cout << x << endl;
        break;
    case 'p':
        PrintList();
        break;
    }
}

int main(void)
{
    SeqList<int, 100>a;
    SeqList<char, 100>b;
    SeqList<double, 100>c;

    char ch1, ch2;

    while (cin >> ch1)
    {
        cin >> ch2;
        switch (ch1)
        {
        case 'a':a.Operation(ch2);
            break;
        case 'b':b.Operation(ch2);
            break;
        case 'c':c.Operation(ch2);
            break;
        }
    }
    return 0;
}
  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2022-03-21 18:40
    关注

    locate函数为何要 data[0] = x;????

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月29日
  • 已采纳回答 3月21日
  • 创建了问题 3月21日

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探