c語言 用鏈表實現 超長整型加減法 (doing)

來源:互聯網
上載者:User

標籤:

 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<math.h> 4 struct dulnode 5 { 6     int data; 7     struct dulnode *next,*prev; 8 }; 9 typedef struct dulnode DULNODE;10 typedef DULNODE * DULINKLIST;11 int main()12 {13     DULNODE fuc_creat(DULNODE NUM);14     int fuc_print(DULNODE NUM);15     int fuc_compe(DULNODE NUM1,DULNODE NUM2);16     int fuc_plus(DULNODE NUM1,DULNODE NUM2);17     int fuc_sub(DULNODE NUM1,DULNODE NUM2);18     DULNODE NUM1={NUM1.data=0};19     NUM1=fuc_creat(NUM1);20     fuc_print(NUM1);21     return 1;22 }23 DULNODE fuc_creat(DULNODE NUM)24 {25     DULINKLIST p,q;26     int i=0,block=0,j=1;27     int temp[100];28     char str[101];29     gets(str);30     q=&NUM;31     for(i=0;i<100&&str[i]!=‘\0‘;i++)32     {33         if(str[i]<‘0‘||str[i]>‘9‘)printf("input error");34         temp[i]=str[i]-‘0‘;35 //        printf("test_1 %d\n",temp[i]);36     }37     for(i=i-1;i>-1;i--)38     {39         q->data=q->data+j*temp[i];40         block++;41         j=j*10;42         if(block%4==0)43         {44             p=(DULNODE *)malloc(sizeof(DULNODE));45             p->data=0;46             p->next=q;47             p->prev=&NUM;48             q->prev=p;49             NUM.next=p;50             q=p;51             j=1;52         }53 //        printf("test_2%d\n",q->data);54     }55     return NUM;56 }57 int fuc_print(DULNODE NUM)58 {59     printf("test_1 print\n");60     DULINKLIST q;61     q=NUM.next;62     do63     {64         printf("%d",q->data);65         q=q->next;66     }while(q==&NUM);67     printf("test_2 print\n");68     return 1;69 }

vim+gcc+gdb大法好;linux下編程妙。

插播個串連:vim命令+gdb命令http://pan.baidu.com/s/1pJKChHT 檔案來自百度文庫,可自行尋找

1:學會調試。自從學了這招,再也不在程式裡插播printf(test")代碼啦!

2:malloc函數 標頭檔<stdlib.h>  使用 p=(int */*要返回的類型,強制轉換給p*/)malloc(n/*分配幾個*/*sizeof(int/*分配給p的長度*/))。malloc開闢的空間會使p指向新開闢的地址,從而失去原來的指向,有必要的話請提前保留p的資訊。代碼44行

3:函數類型定義 定義為int型則該函數return的值為該類型。代碼23定義,代碼55返回,代碼19接收傳回值。

4:結構體指標指向結構體內資料  q->data   (*q).data推薦前面那個寫法。

5:結構體賦初值 可以寫建構函式(c++?)或者在定義的時候直接賦值,每個元素間用 逗號 串連 struct delnode NUM1={NUM1.data=0} 代碼18行

6:軟體工程思維  需要提前想好軟體大體怎麼寫,什麼函數實現什麼功能。likes 吾等弱雞狀態下,更需如此。建議先寫main函數,這樣調試時省力。

c語言 用鏈表實現 超長整型加減法 (doing)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.