赞
踩
3、选择菜单栏的项目->属性->配置属性->C+±>常规->附加包目录->编辑,添加:libmx.lib;libeng.lib;libmat.lib; 点击确定
4、选择菜单栏的项目->属性->配置属性->链接器->输入->附加依赖项->编辑,添加:libmx.lib;libeng.lib;libmat.lib; 点击确定
5、选择菜单栏的解决方案平台,选择x64(倘若没有这个选项,则选择配置管理器->选择平台->新建->选择x64->确定即可)
#define _CRT_SECURE_NO_WARNINGS 1
如若不想每次都主动添加此代码,可以找到自己vs的一个这个文件newc++file
然后把他给复制在桌面上防止一会更改时出现此类错误
先复制到桌面上然后再用记事本打开把#define _CRT_SECURE_NO_WARNINGS 1
复制到里面保存后再复制到原路径即可
此类错误较为简单,同学门按照提示信息进行相关操作即可。
最常使用的几个快捷键:
F5
启动调试,经常用来直接跳到下一个断点处。
F9
创建断点和取消断点
断点的重要作用,可以在程序的任意位置设置断点。
这样就可以使得程序在想要的位置随意停止执行,继而一步步执行下去。
F10
逐过程,通常用来处理一个过程,一个过程可以是一次函数调用,或者是一条语句。
F11
逐语句,就是每次都执行一条语句,但是这个快捷键可以使我们的执行逻辑进入函数内部(这是最
长用的)。
CTRL + F5
开始执行不调试,如果你想让程序直接运行起来而不调试就可以直接使用。
在调试开始之后,用于观察变量的值。
在调试开始之后,用于观察内存信息。
查看调用堆栈
通过调用堆栈,可以清晰的反应函数的调用关系以及当前调用所处的位置
查看汇编信息
在调试开始之后,有两种方式转到汇编:
(1)第一种方式:右击鼠标,选择【转到反汇编】:
比
第二种方式:
查看寄存器信息
5.1 实例一
#include<stdio.h> 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("%d\n", sum); return 0; }
这时候我们如果3,期待输出9,但实际输出的是15。
why?
这里我们就得找我们问题。
最后调试发现原来每次ret都要重新为1才行
#include<stdio.h> 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; ret=1; for(j=1; j<=i; j++) { ret *= j; } sum += ret; } printf("%d\n", sum); return 0; }
运行结果如下
最后希望大家都能写出优秀的代码
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。