如何优化代码以避免时限错误

时间:2019-07-19 11:33:45

标签: c arrays file time-limiting

我正在为考试创建编。该代码可以正常工作,但出现时间限制错误。如何编写此代码以更好地避免此错误?

  var cell = e.range.getA1Notation(); //Gets the Cell you edited
  var cell_value = e.range.getValue(); //Gets the value of the cell

  if(cell == 'C42' && cell_value == 'General Account Call'){
    sheet.showRows(43, 10);
    sheet.showRows(78, 23);

  }

  if (cell == 'C40' && cell_value){ //The checkbox value returns true or false
    sheet.showRows(41);
}

2 个答案:

答案 0 :(得分:2)

此代码是一个潜在的问题:

   do{
    fscanf(file1, "%d", &a);
    if(a!=0){
     sum=sum+a;
     i++;
    }
   } while(a!=0);

您无需检查fscanf()的返回值,因此当您敲击输入文件的末尾时,如果读取的最后一个值非零,则代码将进入无限循环。 / p>

更好的解决方案:

   do{
    int numScanned = fscanf(file1, "%d", &a);

    // break loop if fscanf() fails for any reason
    if ( numScanned != 1 ) break;

    if(a!=0){
     sum=sum+a;
     i++;
    }
   } while(a!=0);

答案 1 :(得分:0)

您可以删除fscanf(file1,“%d”,&a);从没有做就可以使用,因为您将以“ w”模式打开input.txt文件,因此它将被截断并被视为新的空文件。因此,它里面没有任何内容。这样,时间复杂度将降低。