13247810307 发表于 2019-8-3 08:59:19

做完了

徐江颖 发表于 2019-8-3 09:22:07

ld returnrd 1 exit status 不知道哪里出了问题{:5_99:}

Cyzyt 发表于 2019-8-3 09:50:37

查看答案

MichealYS 发表于 2019-8-3 10:53:50

加油!

hollyip 发表于 2019-8-3 11:27:24

#include <stdio.h>
#include <unistd.h>
#include <dirent.h>
#include <string.h>
#include <stdlib.h>
#include <sys/stat.h>

#define MAX 256

long total;

int countLines(const char *filename);
int isCode(const char *filename);
void findAllDirs(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;

}
int isCode(const char *filename)
{
        int length;
        length = strlen(filename);
        if (!strcmp(filename + (length - 2), ".c"))
        {
                return 1;
        }
        else
        {
                return 0;
        }
}

void findAllDirs(const char *path)
{
        DIR *dp;
        struct dirent *entry;
        struct stat statbuf;

        if ((dp = opendir(path))==NULL)
        {
                fprintf(stderr, "The path %s is wrong\n" ,path);
                return;
        }
       
        chdir(path);
        while((entry = readdir(dp)) != NULL)
        {
                lstat(entry->d_name, &statbuf);

                if (!strcmp(".", entry->d_name) || !strcmp("..", entry->d_name))
                        continue;
                if (S_ISDIR(statbuf.st_mode))
                {
                        findAllDirs(entry->d_name);                       
                }
                else
                {
                        if (isCode(entry->d_name))
                        {
                                total += countLines(entry->d_name);
                        }
                }
        }
        chdir("..");
        closedir(dp);
}

int main()
{
        char path = ".";
        printf("计算中。。。\n");

        findAllDirs(path);

        printf("目前你总共写了%ld行代码\n\n", total);

        return 0;
}
































a1047921557 发表于 2019-8-3 12:23:29

芝麻开门

893604914 发表于 2019-8-3 12:49:56

查看参考答案

2548311622 发表于 2019-8-3 13:03:38

累死了{:5_104:}

风流浪子莫教贫 发表于 2019-8-3 14:38:01

666

weiqiang0209 发表于 2019-8-3 15:29:41

0.只能识别0和1
1.机器码
2.编译
3.能否直接被计算机识别
4.能
5.通过解释器

Leahc2M 发表于 2019-8-3 15:39:02

做完作业来看答案咯~~~

天隙流喵 发表于 2019-8-3 15:40:51

1

ジョジョ 发表于 2019-8-3 16:54:16

本帖最后由 ジョジョ 于 2019-8-3 16:55 编辑

动动手

CSY88 发表于 2019-8-3 17:05:06

不行

viceversa 发表于 2019-8-3 17:44:05

本帖最后由 viceversa 于 2019-8-3 18:03 编辑

102

罗罗啦 发表于 2019-8-3 17:50:56

{:10_266:}can not open the file:.dier.c

gaoyaqun2006 发表于 2019-8-3 20:48:32

习题已经做完

立得正 发表于 2019-8-3 21:18:11

答案

番茄超人 发表于 2019-8-3 22:03:52

1

wjwwy 发表于 2019-8-3 23:43:47

谢谢小甲鱼
页: 347 348 349 350 351 352 353 354 355 356 [357] 358 359 360 361 362 363 364 365 366
查看完整版本: S1E2:第一个程序 | 课后测试题及答案