【发布时间】:2019-07-19 11:33:45
【问题描述】:
我正在为我的考试创建一个 prog。代码工作正常,但我收到时间限制错误。如何更好地编写此代码以避免此错误?
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
int a, sum;
float b, i;
i=0;
sum=0;
FILE *file1;
file1=fopen("input.txt","w");
do{
fscanf(file1, "%d", &a);
if(a!=0){
sum=sum+a;
i++;
}
} while(a!=0);
fclose(file1);
b=(sum/i);
printf("%f", b);
FILE *file2;
file2=fopen("output.txt","w");
fprintf(file2, "%f", b);
fclose(file2);
return 0;
}
【问题讨论】:
-
“时限错误”是什么意思?我认为您将代码放入检查其复杂性的系统中。此外,您需要解释问题是什么以及您希望得到什么结果。
-
float i和i=0,为什么? -
虽然编译器并不真正关心空格和缩进,但对于我们试图阅读和理解代码的人类来说,这很重要。请编辑您的问题及其代码以获得一致的缩进。在代码中添加一两行“段落”也不错。
-
代码工作正常... 发布的代码肯定不能“正常工作”。
file1=fopen("input.txt","w");打开input.txt文件以进行写入 - 在将其截断为零字节后。假设您必须意味着在阅读模式下发布打开的@987654326@ 的代码,与该代码存在哪些其他差异? -
如果文件为空或不以数字开头(并且已正确打开),您最终将得到一个统一化的
a,除非纯属偶然,否则您将永远循环
标签: c arrays file time-limiting