陌横 2022-02-14 16:59 采纳率: 87.5%
浏览 52
已结题

请问一下测试点2和4为什么会报错?

img

#include<iostream>
using namespace std;
int main()
{
    int i=0,j=0,a[10];
    for (i = 0; i < 10; i++)
    {
        cin >> a[i];
    }
    
    if (a[0] == 0)
    {
        for (i = 1; i < 10; i++)
        {
            for (j=1;j<=a[i];j++)
            {
                cout << i;
            }
        }
    }
    else 
    {
        for (i=1;i<10;i++)
        {
            if (a[i]!=0)
            {
                for (j = 1; j==1; j++)
                {
                    cout << i;
                    a[i]--;
                }
            }
            break;
        }
        for (i = 0; i < 10; i++)
        {
            for (j = 1; j <= a[i]; j++)
            {
                cout << i;
            }
        }
    }

}


  • 写回答

3条回答 默认 最新

  • 於黾 2022-02-14 17:27
    关注

    肯定是因为待测试的数据里出现了0,而你没好好处理
    你应该先对所有数据排序,
    然后把0之后的第1个非0数字挪到最左边,就是最小的数字了

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

报告相同问题?

问题事件

  • 系统已结题 2月22日
  • 已采纳回答 2月14日
  • 修改了问题 2月14日
  • 创建了问题 2月14日