如何修改并优化自己的代码?

如何修改并优化自己的代码?,第1张

如何修改并优化自己的代码?

目录
  • 一.调试技巧
  • 二.错误归类和更改过程
    • 一.代码本身的问题
    • 二.逻辑错误
  • 总结

一.调试技巧

F5

启动调试,经常用来直接跳到下一个断点处。

F9

创建断点和取消断点
断点的重要作用,可以在程序的任意位置设置断点。
这样就可以使得程序在想要的位置随意停止执行,继而一步步执行下去。
F5一般与F9一并使用,在下列例子中会提到具体使用方法

F10

逐过程,通常用来处理一个过程,一个过程可以是一次函数调用,或者是一条语句。
跳过自定义函数

F11

逐语句,就是每次都执行一条语句,但是这个快捷键可以使我们的执行逻辑进入函数内部(这是 最长用的)。
不跳过自定义函数

CTRL + F5

开始执行不调试,如果你想让程序直接运行起来而不调试就可以直接使用。

二.错误归类和更改过程 一.代码本身的问题

例:

int main()
{
	double a, b, c;
	scanf("%d %d %d", &a, &b, &c);
	double deta = b * b - 4 * a * c;
	double x1, x2;
	
	if (deta == 0)
	{
		x1 = (-b) / (2 * a);
		printf("x1=x2=%.5lf", x1);
	}
	if (deta > 0)
	{
		x1 = (-b - sqrt(deta)) / (2 * a);
		x2 = (-b + sqrt(deta)) / (2 * a);
		if(x1>x2)
		printf("x1=%.5lf;x2=%.5lf", x2,x1);
		else
		printf("x1=%.5lf;x2=%.5lf", x1, x2);
	}
	else
	{
		printf("No answer!");
	}
	return 0;
}

运行起来发现,本身是能运行起来的,并且逻辑也是对的,但答案依然是错误的,我们能通过调试来发现里面的问题,

按下F10,打开监视窗口时,我们发现a,b,c的值并不符合我们的预期,再看程序执行到了scanf("%d %d %d", &a, &b, &c);,我们发现错误在此。

二.逻辑错误

例:

int main()
{
 int i = 0;
 int sum = 0;//保存最终结果
 int n = 0;
 int ret = 1;//保存n的阶乘
 scanf("%d", &n);
 for(i=1; i<=n; i++)
 {
 int j = 0;
 for(j=1; j<=i; j++)
 {
 ret *= j;
 }
 sum += ret;
 }
 printf("%dn", sum);
 return 0;
}

结果:

经过调试,我们发现ret值的异常

突然我们想起了要每次都要为ret重置为1

所以我们改正了代码

int main()
{
	int i = 0;
	int sum = 0;//保存最终结果
	int n = 0;
	int ret = 1;//保存n的阶乘
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		ret = 1;
		int j = 0;
		for (j = 1; j <= i; j++)
		{
			ret *= j;
		}
		sum += ret;
	}
	printf("%dn", sum);
	return 0;
}
总结

通过F10开始调试,再通过监视窗口观察出问题

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5610196.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存