我正在为考试创建编。该代码可以正常工作,但出现时间限制错误。如何编写此代码以更好地避免此错误?
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);
}
答案 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文件,因此它将被截断并被视为新的空文件。因此,它里面没有任何内容。这样,时间复杂度将降低。