C语言 怎么调试程序

C语言 怎么调试程序,第1张

一、在keil中调试c语言程序

1、打开我们的程序,点击菜单栏右侧的start/stopdebug..按钮,进入调试模式,如下图

2、左侧为寄存器窗口,右上方是汇编窗口,我们可以看到各个寄存器的数值和c语言对应的汇编代码,如下图。

3、点击单步执行按钮或者点击f11、f10,都可以进入单步执行模式,方便我们看程序流程和执行步骤,如下图。

4、点击菜单栏的串口按钮,我们来调试串口的输出,这里有很多对应的调试工具可供选择,如下图。

5、单步执行,我们看到各个窗口的变化,当直行到输出时,可以看到串口窗口有相应的字符输出,如下图。

6、再次点击start/stop按钮来停止调试,如下图。

二、用vs2012对C语言进行调试

1、要对编程环境左边的一条竖直的空开的地方进行点击,点击的是你要调试的相应的语句

2、点击窗口上方的工具栏的调试界面,点击逐语句或逐过程,都没关系。

3、开始调试,在调试过程中每个调试语句都要按一次F5键,在键盘上按下,你可以看到执行的当前的语句中,左边位置的红点有个箭头。

4、在每次调试语句中,变量值发生改变时,下方的小界面都会显示出来,看是否正确。

5、不断地重复这个步骤,知道发现错误的地方为止。

6、发现错误后,停止调试,修改相应的代码,即完成此次调试。

#include <stdio.h>

#include <string.h>

#include <conio.h>

#define N 100

struct student

{ char XUEHAO[10]

char BANJI[6]

char XINGMING[6]

char XINGBIE[2]

char SHENGRI[8]

char JIGUAN[10]

char XUEYUAN[10]

char TIANHUA[10]

char CLRSCR[8]

}

void CAIDAN()

void LURU()

void SHAXUN()

void sch_XUEHAO(FILE *fp)

void sch_XINGMING(FILE *fp)

void SHANCHU()

void del_XUEHAO(FILE *fp)

void del_XINGMING(FILE *fp)

void TIANJIA()

void XIUGAI()

void XIANZHI()

void TONGJI()

main()

{ char choose,yes_no

do

{ CAIDAN()

printf("\n 请输入序号: (1~8) ")

choose=getch()

switch(choose)

{ case'1': printf(" %c",choose)LURU()break

case'2': printf(" %c",choose)SHAXUN()break

case'3': printf(" %c",choose)SHANCHU()break

case'4': printf(" %c",choose)TIANJIA()break

case'5': printf(" %c",choose)XIUGAI()break

case'6': printf(" %c",choose)XIANZHI()break

case'7': printf(" %c",choose)TONGJI()break

case'8': break

default:printf("\n %c 序号不对!\n",choose)

}

if(choose=='8')break

printf("\n 要继续选择吗 ? (Y/N) \n")

do

{ yes_no=getch()printf(" %c",yes_no)}

while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n')

}while(yes_no=='Y'||yes_no=='y')

}

void CAIDAN()

{ clrscr();就是这里?

printf("\n\n\n")

printf(" **************************************** \n ")

printf(" * 请输入序号: (1~ 8) * \n ")

printf(" * 1------录入学生信息 * \n ")

printf(" * 2------查询学生信息 * \n ")

printf(" * 3------删除学生信息 * \n ")

printf(" * 4------添加学生信息 * \n ")

printf(" * 5------修改学生信息 * \n ")

printf(" * 6------显示学生信息 * \n ")

printf(" * 7------查找同一个学院的人数 * \n ")

printf(" * 8------退出系统 * \n ")

printf(" **************************************** \n ")

}

错误在{ clrscr();

提示:error C2065: 'clrscr' : undeclared identifier

语法上的错误的修改:

void main()

{

int i=2,j,w=0,r

double k

while(i<=100)

{

j=2

k=sqrt(i)

while(j<=k&&w==0)

{

r=(i%j)

if(r==0) //注意if语句条件判断是不是相等用两个==

w=1

else

j=j+1

}

}

if(w==0)

printf("素数为:%d",i)

}

上边的代码可以执行了,但是你写的代码逻辑上有错误。

我给你修改如下:

void main()

{

int i,j=2,w=0,r

double k

printf("请输入一个数据\n")

scanf("%d",&i)

k=sqrt(i)

while(j<=k&&w==0) //外层的循环没有必要,就算写上也可以,但是你得有跳出循环的语句

{ //否则就成了死循环。

r=i%j

if(r==0)

{

w=1

break

}

else

j++

}

if(w==0)

printf("%d是素数\n",i)

else

printf("%d不是素数\n",i)

}


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

原文地址: http://outofmemory.cn/yw/11188782.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存