鱼C论坛

 找回密码
 立即注册
查看: 1068|回复: 1

[已解决]c语言第2章课后作业第52行不对,求大佬帮忙

[复制链接]
发表于 2021-2-4 10:42:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  1. #include <io.h>
  2. #include <direct.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>

  6. #define MAX        256

  7. long total;

  8. int countLines(const char *filename);
  9. void findAllCodes(const char *path);
  10. void findALLFile(const char *path);

  11. int countLines(const char *filename)
  12. {
  13.              FILE *fp;
  14.              int count = 0;
  15.              int temp;
  16.              
  17.              if ((fp = fopen(filename, "r")) == NULL)
  18.              {
  19.                           fprintf(stderr, "Cam not open the file: %s\n", filename);
  20.                           return 0;
  21.                  }

  22.          while ((temp = fgetc(fp)) != EOF )
  23.          {
  24.                        if (temp == '\n')
  25.                        {
  26.                                      count++;
  27.                                    }
  28.                  }
  29.                  
  30.                  fclose(fp);
  31.                  
  32.                  return count;
  33. }

  34. void findAllCodes(const char *path)
  35. {
  36.              struct _finddata_t fa;
  37.              long handle;
  38.              char thePath[MAX], tarfet[MAX];
  39.              
  40.              stecpy(thePath, path);
  41.              if((handle = _findfirst(strcat(thePath, "/*.c"), &fa)) != -1L)
  42.              {
  43.                          do
  44.                          {
  45.                                      sprintf(target, "%s/%s", path, fa.name);
  46.                                      total += countLines(target);
  47.                                 }while (_findnext(handle, &fa) == 0);
  48.                  }
  49.                  
  50.                  _findclose(handle);
  51. }

  52. void findALLDirs(const char *path)
  53. {
  54.              struct _finddata_t fa;
  55.              long handle;
  56.              char thePath[MAX];
  57.              
  58.              strcpy(thePath, path);
  59.              if((handle = _findfirst(strcat(thePath, "/*"), &fa)) == -1L)
  60.              {
  61.                          fprintf(stderr, "The path %s is wrong!\n" ,path);
  62.                          return;
  63.                  }
  64.                  
  65.                  do
  66.                  {
  67.                              if (!strcmp(fa.name, ".") || !strcmp(fa.name, ".."))
  68.                                      continue;
  69.                                     
  70.                              if( fa.attrib == _A_SUBDIR)
  71.                              {
  72.                                          sprintf(thePath, "%s/%s", path, fa.name);
  73.                                          findAllCodes(thePath);
  74.                                                  findALLDirs(thePath);
  75.                                  }
  76.                  }while (_findnext(handle, &fa) == 0);
  77.                
  78.                  _findclose(handle);
  79. }

  80. int min()
  81. {
  82.              char path[MAX] = ".";
  83.              
  84.              parintf("计算中...\n");
  85.              
  86.              findAllCodes(path);
  87.              findALLDirs(path);
  88.              
  89.              printf("目前你总共写了 %ld 行代码!\n\n", total);
  90.              system("pause");
  91.              
  92.              return 0;
  93. }
复制代码
最佳答案
2021-2-4 10:52:27
一些拼写错误,都帮你改过来了

  1. #include <io.h>
  2. #include <direct.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>

  6. #define MAX        256

  7. long total;

  8. int countLines(const char *filename);
  9. void findAllCodes(const char *path);
  10. void findALLFile(const char *path);

  11. int countLines(const char *filename)
  12. {
  13.              FILE *fp;
  14.              int count = 0;
  15.              int temp;
  16.             
  17.              if ((fp = fopen(filename, "r")) == NULL)
  18.              {
  19.                           fprintf(stderr, "Cam not open the file: %s\n", filename);
  20.                           return 0;
  21.                  }

  22.          while ((temp = fgetc(fp)) != EOF )
  23.          {
  24.                        if (temp == '\n')
  25.                        {
  26.                                      count++;
  27.                                    }
  28.                  }
  29.                  
  30.                  fclose(fp);
  31.                  
  32.                  return count;
  33. }

  34. void findAllCodes(const char *path)
  35. {
  36.              struct _finddata_t fa;
  37.              long handle;
  38.              char thePath[MAX], target[MAX];
  39.             
  40.              strcpy(thePath, path);
  41.              if((handle = _findfirst(strcat(thePath, "/*.c"), &fa)) != -1L)
  42.              {
  43.                 do
  44.                 {
  45.                         sprintf(target, "%s/%s", path, fa.name);
  46.                     total += countLines(target);
  47.                 }while (_findnext(handle, &fa) == 0);
  48.             }
  49.                  
  50.                  _findclose(handle);
  51. }

  52. void findALLDirs(const char *path)
  53. {
  54.              struct _finddata_t fa;
  55.              long handle;
  56.              char thePath[MAX];
  57.             
  58.              strcpy(thePath, path);
  59.              if((handle = _findfirst(strcat(thePath, "/*"), &fa)) == -1L)
  60.              {
  61.                          fprintf(stderr, "The path %s is wrong!\n" ,path);
  62.                          return;
  63.                  }
  64.                  
  65.                  do
  66.                  {
  67.                              if (!strcmp(fa.name, ".") || !strcmp(fa.name, ".."))
  68.                                      continue;
  69.                                     
  70.                              if( fa.attrib == _A_SUBDIR)
  71.                              {
  72.                                          sprintf(thePath, "%s/%s", path, fa.name);
  73.                                          findAllCodes(thePath);
  74.                                                  findALLDirs(thePath);
  75.                                  }
  76.                  }while (_findnext(handle, &fa) == 0);
  77.                
  78.                  _findclose(handle);
  79. }

  80. int main()
  81. {
  82.              char path[MAX] = ".";
  83.             
  84.              printf("计算中...\n");
  85.             
  86.              findAllCodes(path);
  87.              findALLDirs(path);
  88.             
  89.              printf("目前你总共写了 %ld 行代码!\n\n", total);
  90.              system("pause");
  91.             
  92.              return 0;
  93. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-2-4 10:52:27 | 显示全部楼层    本楼为最佳答案   
一些拼写错误,都帮你改过来了

  1. #include <io.h>
  2. #include <direct.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>

  6. #define MAX        256

  7. long total;

  8. int countLines(const char *filename);
  9. void findAllCodes(const char *path);
  10. void findALLFile(const char *path);

  11. int countLines(const char *filename)
  12. {
  13.              FILE *fp;
  14.              int count = 0;
  15.              int temp;
  16.             
  17.              if ((fp = fopen(filename, "r")) == NULL)
  18.              {
  19.                           fprintf(stderr, "Cam not open the file: %s\n", filename);
  20.                           return 0;
  21.                  }

  22.          while ((temp = fgetc(fp)) != EOF )
  23.          {
  24.                        if (temp == '\n')
  25.                        {
  26.                                      count++;
  27.                                    }
  28.                  }
  29.                  
  30.                  fclose(fp);
  31.                  
  32.                  return count;
  33. }

  34. void findAllCodes(const char *path)
  35. {
  36.              struct _finddata_t fa;
  37.              long handle;
  38.              char thePath[MAX], target[MAX];
  39.             
  40.              strcpy(thePath, path);
  41.              if((handle = _findfirst(strcat(thePath, "/*.c"), &fa)) != -1L)
  42.              {
  43.                 do
  44.                 {
  45.                         sprintf(target, "%s/%s", path, fa.name);
  46.                     total += countLines(target);
  47.                 }while (_findnext(handle, &fa) == 0);
  48.             }
  49.                  
  50.                  _findclose(handle);
  51. }

  52. void findALLDirs(const char *path)
  53. {
  54.              struct _finddata_t fa;
  55.              long handle;
  56.              char thePath[MAX];
  57.             
  58.              strcpy(thePath, path);
  59.              if((handle = _findfirst(strcat(thePath, "/*"), &fa)) == -1L)
  60.              {
  61.                          fprintf(stderr, "The path %s is wrong!\n" ,path);
  62.                          return;
  63.                  }
  64.                  
  65.                  do
  66.                  {
  67.                              if (!strcmp(fa.name, ".") || !strcmp(fa.name, ".."))
  68.                                      continue;
  69.                                     
  70.                              if( fa.attrib == _A_SUBDIR)
  71.                              {
  72.                                          sprintf(thePath, "%s/%s", path, fa.name);
  73.                                          findAllCodes(thePath);
  74.                                                  findALLDirs(thePath);
  75.                                  }
  76.                  }while (_findnext(handle, &fa) == 0);
  77.                
  78.                  _findclose(handle);
  79. }

  80. int main()
  81. {
  82.              char path[MAX] = ".";
  83.             
  84.              printf("计算中...\n");
  85.             
  86.              findAllCodes(path);
  87.              findALLDirs(path);
  88.             
  89.              printf("目前你总共写了 %ld 行代码!\n\n", total);
  90.              system("pause");
  91.             
  92.              return 0;
  93. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-2 04:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表