當前位置:編程學習大全網 - 編程語言 - 有沒有老師傅熟練使用數控旋壓機,最近為了學旋壓機編程頭都大了,加

有沒有老師傅熟練使用數控旋壓機,最近為了學旋壓機編程頭都大了,加

#include <stdlib.h> /*含ma l l o c ( ) 的頭文件*/

#include <stdio.h>

//①定義鏈表數據結構

struct node

{

int num;

struct node *next;

};

//函數聲明

struct node *creat();

void print();

main( )

{

struct node *head;

head=NULL; //②建壹個空表

head=creat(head);/*創建單鏈表*/

print(head);/*打印單鏈表*/

}

/******************************************/

struct node*creat(struct node *head)/*返回的是與節點相同類型的指針*/

{

struct node*p1,*p2;

int i=1;

//③利用malloc ( )函數向系統申請分配壹個節點

p1=p2=(struct node*)malloc(sizeof(struct node));/*新節點*/

printf("請輸入值,值小於等於0結束,值存放地址為:p1_ADDR= %d\n",p1);

scanf("%d",&p1->num);/*輸入節點的值*/

p1->next=NULL;/*將新節點的指針置為空*/

while(p1->num>0)/*輸入節點的數值大於0*/

{

//④將新節點的指針成員賦值為空。若是空表,將新節點連接到表頭;若是非空表,將新節點接到表尾;

if(head==NULL)

head=p1;/*空表,接入表頭*/

else

p2->next=p1;/*非空表,接到表尾*/

p2=p1;

p1=(struct node*)malloc(sizeof(struct node));/*下壹個新節點*/

i=i+1;

printf("請輸入值,值小於等於0結束,值存放地址為:p%d_ADDR= %d\n",i,p2);

scanf("%d",&p1->num);/*輸入節點的值*/

//⑤判斷壹下是否有後續節點要接入鏈表,若有轉到3 ),否則結束;

}

//==============原來程序更正部分:(多謝@daling_datou提醒)================================

free(p1); //申請到的沒錄入,所以釋放掉

p1=NULL; //使指向空

p2->next = NULL; //到表尾了,指向空

printf("鏈表輸入結束(END)\n");

//==============================================

return head;/*返回鏈表的頭指針*/

}

/*******************************************/

void print(struct node*head)/*出以head為頭的鏈表各節點的值*/

{

struct node *temp;

temp=head;/*取得鏈表的頭指針*/

printf("\n\n\n鏈表存入的值為:\n");

while(temp!=NULL)/*只要是非空表*/

{

printf("%6d\n",temp->num);/*輸出鏈表節點的值*/

temp=temp->next;/*跟蹤鏈表增長*/

}

printf("鏈表打印結束!!");

}

  • 上一篇:matlab新手請教壹下
  • 下一篇:Oppor9語音助手
  • copyright 2024編程學習大全網