【问题标题】:Time limit exceeded error. what does it mean?超出时间限制错误。这是什么意思?
【发布时间】:2014-09-04 21:17:54
【问题描述】:

我想编写一个打印最多 10 个整数的 C 程序。但我得到这个错误。有什么问题?(错误是:超出时间限制)

int main()

{
    int arr[9];
    int i;
    int max=-1;

    for(i=0;i<=10;i++) {
        scanf("%d",&arr[i]);

        if(arr[i]>arr[i+1]){
            arr[i]=max; 
        }  
    }
    printf("%d",max);
 }

程序就是这样,谢谢你的帮助

int main()

{
    int arr[9];
    int i;


       int max=-1;



    for(i=0;i<=9;i++) {

        scanf("%d",&arr[i]);

        if(arr[i]>max) {

            max=arr[i]; }  }

            printf("%d",max);

    }

【问题讨论】:

  • 你遇到了什么错误?
  • 这听起来像是您用来运行代码的环境正在执行的操作。
  • 如果你想有 10 个数字,为​​什么要声明一个只能容纳 9 个数字的数组?然后阅读其中的 11 个?
  • 在您的帖子中进行更改,而不是作为评论
  • 我仍然想知道为什么在这个中有一个数组。您需要 两个 数字(如果包括循环计数器,则需要三个):您刚刚读取的数字和目前为止的最大数字。如果前者大于后者,gratz,你有一个新的最大值,所以分配它并移动到下一次迭代。您的描述中没有任何内容表明数组是有保证的。

标签: c time limit exceed


【解决方案1】:

您正在索引数组末尾之后的两个。您需要将 for 条件设为:

for(i=0;i<9;i++)

【讨论】:

  • 如果他想找到最大值,他会遇到更多问题
  • 是的。没有边界检查。甚至没看到
  • if(arr[i]>arr[i+1]) 那部分应该是这样的: if(arr[i]>max) 和这部分 for(i=0;i
猜你喜欢
  • 2015-07-05
  • 2016-03-24
  • 1970-01-01
  • 2015-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多