C语言第二课,课后作业,运行结果出错
本帖最后由 GuiQu_1539 于 2021-2-2 21:10 编辑第二课的作业是抄写小甲鱼给的代码,但是运行之后和小甲鱼给出的答案不一样,请问这是问什么啊?
%5Burl=https://imgchr.com/i/yus1OK%5Dhttps://s3.ax1x.com/2021/02/02/yus1OK.png
https://s3.ax1x.com/2021/02/02/yustFH.png
(Windows系统,编译器是Dev-C++)
以下是代码
#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 *filename)
{
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, target;
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;
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 = ".";
printf("计算中...\n");
findAllCodes(path);
findALLDirs(path);
printf("目前你总共写了 %ld 行代码!\n\n", total);
system("pause");
return 0;
} 1,发代码
2,发图片用图床,新鱼友是发不了图片的
https://imgchr.com 建议把代码复制过来 题目和你的结果发一下 小甲鱼的铁粉 发表于 2021-2-2 19:26
建议把代码复制过来
不好意思,已加入代码 本帖最后由 GuiQu_1539 于 2021-2-2 21:11 编辑
lll_jh888 发表于 2021-2-2 19:26
题目和你的结果发一下
图片已经加入,感谢 本帖最后由 GuiQu_1539 于 2021-2-2 21:11 编辑
qiuyouzhi 发表于 2021-2-2 19:25
1,发代码
2,发图片用图床,新鱼友是发不了图片的
https://imgchr.com
感谢大佬。代码和图片已经加入。 本帖最后由 李京 于 2021-2-3 10:27 编辑
应该是要把48行的'.c' 改成 '.cpp' 的吧,后缀不一样
然后,还要把你要统计的文件,放到一个文件夹下 李京 发表于 2021-2-3 10:26
应该是要把48行的'.c' 改成 '.cpp' 的吧,后缀不一样
然后,还要把你要统计的文件,放到一个文 ...
已经修复,能正常运行。感谢大佬。
页:
[1]