|  | 
 
| 
作业地址:https://fishc.com.cn/forum.php?m ... peid%26typeid%3D570
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  这是我敲的:
 
 #include<io.h>
 #include<direct.h>
 #include<stdio.h>
 #include<stdlib.h>
 #include<string.h>
 
 #define MAX     256
 
 long total;
 
 int countLines(const char *filename);
 void findAllCodes(const char *path);
 void findAllFiles(const char *path);
 
 int countLines(const char *fliename)
 {
 FILE *fp;
 int count = 0;
 int temp;
 
 if ((fp = fopen(filename, "r")) == NULL)
 {
 fprintf(stderr, "Can not open the file: %s\n", filename);
 return 0;
 }
 
 while ((temp = fgetc(fp)) != EOF)
 {
 if (temp ==        '\n')
 {
 count++;
 }
 }
 
 fclose(fp);
 
 return count;
 }
 
 void findAllCodes(const char *path)
 {
 struct _finddata_t fa;
 long handle;
 char thePath[MAX], target[MAX];
 
 strcpy(thePath, path);
 if((handle = _findfirst(strcat(thePath, "/*.c"), &fa)) != -1L)
 {
 do
 {
 sprintf(target, "%s/%s", path, fa.name);
 total += countLines(target);
 }while (_findnext(handle, &fa) == 0);
 }
 
 _findclose(handle);
 }
 
 void findALLDirs(const char *path)
 {
 struct _finddata_t fa;
 long handle;
 char thePath[MAX];
 
 strcpy(thePath, path);
 if((handle = _findfirst(strcat(thePath, "/*"), &fa)) == -1L)
 {
 fprintf(stderr, "The path %s is wrong!\n",path);
 return;
 }
 
 do
 {
 if (!strcmp(fa.name, ".") || !strcmp(fa.name, ".."))
 continue;
 
 if( fa.attrib == _A_SUBDIR)
 {
 sprintf(thePath, "%s/%s", path, fa.name);
 findAllCodes(thePath);
 findALLDirs(thePath);
 }
 }while (_findnext(handle, &fa) == 0);
 
 _findclose(handle);
 }
 
 int main()
 {
 char path[MAX] = ".";
 
 printf("计算中...\n");
 
 findAllCodes(path);
 findALLDirs(path);
 
 printf("你目前总共写了 %1d 行代码! \n\n", total);
 system("pause");
 
 return 0;
 }
 标答是101行,但我的运行之后是204行。请问有什么问题
 
 | 
 |