码迷,mamicode.com
首页 > 编程语言 > 详细

c语言 用链表实现 超长整型加减法 (doing)

时间:2015-03-19 23:27:53      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:

 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     do
63     {
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)

标签:

原文地址:http://www.cnblogs.com/jiangtu/p/4351976.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!