flag=1 AND flag==1(not error but a big bug)

实际上写程序,思路很重要,敲代码谁不会呢?程序的精华部分往往是一个好的算法设计,没有算法的程序是木的灵魂的,算法也不一定是多么的高大上,实际上解决某个特定的问题的特定的具有一定普适性的能够完成特定判断条件的进一步对时间和空间复杂度都有要求的程序设计亦可称为一个算法

经过测试和验证的达到较高的精确度和较为普适的应用面的能够付诸实际应用的的“算法”程序,可以经过特定的封装再供调用,至少最终目的是这样

做了一个面试题,关于字符串处理的问题的小型算法设计部分(暂且可以称为算法设计,至少在没有太多外在约束条件下),实际上对我自己的程序逻辑思维我还是比较有信心的(也并非绝对🤣),至少不会有大的逻辑错误问题,一般在思路明确的情况下很少会出现逻辑问题,一些Bug主要出现在一些不起眼的细节上

int Abs(char c1, char c2)
{
	return (c1-c2)<0 ? (c2-c1) : (c1-c2);
}

各人的设计思维不一样,就一个简单的Abs输出程序而言都有不同的方式,上面的是这次编程里面的Abs程序设计实现,其它的设计逻辑层出不穷,但结果都是Abs输出

for (i = 0; str[i]; i++)
{
	int i_ = i + 1;
	if ((str[i_] == ';' && str[i] != ';')|| (str[i_] == '\0'))
	{
		flag = 1;
		stops = str[i];
		for (j = i;; j--)
		{
			int j__ = j - 1;
			if ((str[j] >= 'A' && str[j] <= 'Z') || (str[j] >= 'a' && str[j] <= 'z'))
			{

			}
			else
			{
				flag = 0;
			}
			if (flag == 0)
			{
					
				break;
			}

			/************************** flag = 1 error !!! ******************************/
			if ((flag == 1 && str[j__] == ';')|| (flag == 1 && j__ == 0))
			{
				if (j__ != 0)
				{
					starts = str[j];
					cnt = cnt + Abs(stops,starts);
					break;
				}
				else
				{
					starts = str[0];
					cnt = cnt + Abs(stops, starts);
					break;
				}
			}
		}
	}
}

就这个程序而言,在我没有告知其具体的实现功能的情况下,我想要想理解它还是需要通读甚至是考虑一段时间的,实际上我也是边玩边写加上修Bug一共耗时两个半小时,至少在拿到题目的一刻是懵逼的🐸

有兴趣可以看一看完整的代码,运行看看(科大讯飞研究生程序岗机试题2)

现在基本稳定使用VS编译器了,至少没发现其它能够吸引我的编译器(对于C、C++而言),Python我倾向于Pycharm,Java则是Eclipse,其它的语言……

if ((flag == 1 && str[j__] == ';')|| (flag == 1 && j__ == 0))
if ((flag = 1 && str[j__] == ';')|| (flag = 1 && j__ == 0))

Mail: 2019110010@mail.hfut.edu.cn

官方邮箱支持一些学生优惠软件申请(Most for foreign software need to pay for money but free for students)

发表评论

电子邮件地址不会被公开。 必填项已用*标注