调试一个c语言程序要经过,c语言程序调试
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
scanf("%f",&p1->score);
}
p2->next = NULL; /*此句就是根據(jù)單向鏈表的最后一個(gè)節(jié)點(diǎn)要指向NULL*/
free(p1); /*釋放p1。用malloc()、calloc()的變量都要free()*/
p1 = NULL;
}
Delete() //刪除節(jié)點(diǎn)函數(shù)
{ long num;
struct student *p1;?? /*p1保存當(dāng)前需要檢查的節(jié)點(diǎn)的地址*/
struct student *p2;?? /*p2保存當(dāng)前檢查過(guò)的節(jié)點(diǎn)的地址*/
printf("please input the num you want to delete");
scanf("%d",&num);
if (head == NULL)
{
printf("\nList is null!\n");
}
/*定位要?jiǎng)h除的節(jié)點(diǎn)*/
p1 = head;
while (p1->num != num && p1->next != NULL) /*p1指向的節(jié)點(diǎn)不是所要查找的,并且它不是最后一個(gè)節(jié)點(diǎn),就繼續(xù)往下找*/
{
p2 = p1; /*保存當(dāng)前節(jié)點(diǎn)的地址*/
p1 = p1->next; /*后移一個(gè)節(jié)點(diǎn)*/
}
if (num == p1->num)
{
if (p1 == head) /*如果要?jiǎng)h除的節(jié)點(diǎn)是第一個(gè)節(jié)點(diǎn)*/
{
head = p1->next; /*頭指針指向第一個(gè)節(jié)點(diǎn)的后一個(gè)節(jié)點(diǎn),也就是第二個(gè)節(jié)點(diǎn)。這樣第一個(gè)節(jié)點(diǎn)就不在鏈表中,即刪除。*/
}
else /*如果是其它節(jié)點(diǎn),則讓原來(lái)指向當(dāng)前節(jié)點(diǎn)的指針,指向它的下一個(gè)節(jié)點(diǎn),完成刪除*/
{
p2->next = p1->next;
}
free(p1); /*釋放當(dāng)前節(jié)點(diǎn)*/
p1 = NULL;
printf("\ndelete %ld success!\n",num);
n -= 1; /*節(jié)點(diǎn)總數(shù)減1個(gè)*/
}
else /*沒有找到*/
{
printf("\n%ld not been found!\n",num);
}
}
void insert() //插入節(jié)點(diǎn)函數(shù)
{}
void print() //打印所有節(jié)點(diǎn)的函數(shù)
{
struct student *p;
printf("\nNow , These %d records are:\n",n);
p = head;
if(head != NULL) /*只要不是空鏈表,就輸出鏈表中所有節(jié)點(diǎn)*/
{
printf("head is %o\n", head); /*輸出頭指針指向的地址*/
do
{
printf("%o??? %ld??? %5.1f??? %o\n", p, p->num, p->score, p->next);
p = p->next; /*移到下一個(gè)節(jié)點(diǎn)*/
}
while (p != NULL);
}
}
void search()
{}
void menu()
{?? printf("????????? **********學(xué)籍管理系統(tǒng)************\n");
printf("\n???????????????? ******請(qǐng)選擇******\n");
printf(" *************|1 |建| 立| 學(xué)| 生| 信| 息| 結(jié)| 構(gòu)|*************\n");
printf(" *************|2 |刪| 除| 學(xué)| 生| 信| 息|????? **************\n");
printf(" *************|3 |加| 入| 新| 的| 學(xué)| 生| 信| 息|*************\n");
printf(" *************|4 |顯| 示| 所| 有| 學(xué)| 生| 信| 息|*************\n ");
printf("*************|5 |查| 找| 學(xué)| 生| 信| 息|????? **************\n");
printf(" *************|0 |退| 出| 程| 序|??????????? *************\n");
}
void main()
{??? int choose;
int i=1;
while(i=1)
{
menu();
printf("請(qǐng)輸入0-5選擇功能");
scanf("%d",&choose);
switch(choose)
{
case'1': Create();?? break;
case'2': Delete();?? break;
case'3': insert();?? break;
case'4': print();??? break;
case'5': search();?? break;
case'0': i=0; printf("程序結(jié)束!!"); break;
default: printf("\n Wrong Selection !(選擇錯(cuò)誤,重選)\n"); break;
}
}
}
總結(jié)
以上是生活随笔為你收集整理的调试一个c语言程序要经过,c语言程序调试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c语言输入字符串的格式不正确的是,关于c
- 下一篇: c语言程序设计 在线课程设计,c语言程序