我有我的計劃:優化程序(C)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (int argc, char *argv[])
{
int r, line = 0, found = 0;
float temp, t_tot = 0;
char loc[32];
FILE *fp;
fp = fopen(argv[1], "r");
if (fp == NULL)
{
printf ("Error opening the file\n\n'");
exit(EXIT_FAILURE);
}
if (argc == 3)
{
while ((r = fscanf(fp, "%f %s\n", &temp, loc)) != EOF)
{
line++;
if (r == 2)
{
if(strcmp(argv[2], loc) == 0)
{
t_tot += temp;
found++;
}
}
else
printf ("Error, line %d in wrong format!\n\n", line);
}
printf ("The average temperature in %s is: %.1f\n\n", argv[2], (t_tot/found));
}
fclose(fp)
return 0;
}
程序需要讀取所有的行,發現我在寫的argv城[2]。它會告訴我該城市的平均氣溫,通知我文件中的某一行是否格式錯誤。
我想知道如何「優化」這個代碼,以便更有效率,並以更緊湊的方式編寫相同的東西。我是一名學生,所有的建議都被接受。
這會更適合於http://codereview.stackexchange.com。 –
在我看來,結構尚好。 –
檢查'main'頂部的'argc'是一種常見的做法,而不是返回循環中的檢查。 – dasblinkenlight