gpt4 book ai didi

计算循环的深度

转载 作者:行者123 更新时间:2023-12-02 01:52:40 27 4
gpt4 key购买 nike

我不确定这个问题是否适合SO。如果不是我会删除。

我必须审查几 KLOC 的代码。作为其中的一部分,我必须找出循环的深度和条件检查。 [请看下面的例子]

如果超过五个意味着我需要记下来。

我的问题是“是否有任何工具可以为我做这件事?”我确实搜索了谷歌,但没有得到答案。

Ex 1 : for {}// block 深度 1

Ex 2 : for { if () {} } // block 深度 2

Ex 3 : for () { for () { if() {} } } // block 深度 3

最佳答案

简单计数的程序

//>prog file
//>prog file max_depth

#include <stdio.h>
#include <stdlib.h>

#define DEPTH_MAX 5 //no count top level

int main(int argc, char *argv[]) {
FILE *fp;
int depth_max = DEPTH_MAX;
if(argc > 1){
if(NULL==(fp = fopen(argv[1], "r"))){
perror("fopen");
exit( EXIT_FAILURE);
}
} else {
fp = stdin;
}
if(argc == 3)
depth_max = atoi(argv[2]);
int ch, level = 0;
size_t line_no = 1;
while(EOF!=(ch=fgetc(fp))){
if(ch == '\n'){
++line_no;
} else if(ch == '{'){
if(++level > depth_max)
printf("found at number of line : %zu\n", line_no);
} else if(ch == '}'){
--level;
}
}
exit(EXIT_SUCCESS);
return 0;
}

关于计算循环的深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21827988/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com