一个数据结构用单链表求大整数的问题

wangzejunxx 2015-11-21 07:18:19
能告诉我为什么错了么,或者直接给个更好地,谢谢。
#include<iostream>
using namespace std;
template <class t>
struct node {
t data;
03. node<t> *next;
05.};
template <class t>
class linklist
{
public:
linklist();
~linklist();
linklist(t a[],int n);
void printlist();
private:
node<t> *first;
};
template <class t>
void linklist<t>::printlist()
{
int p=first->next;
while(p!=NULL)
{
cout<<p->data;
p=p->next;
}
}
template <class t>
linklist<t>::~linklist()
{
while(first!=NULL)
{
q=first;
first=first->next;
delete q;
}
}
template <class t>
linklist<t>::linklist()
{
first=new node;
first->next=NULL;
}
template <class t>
linklist<t>::linklist(t a[],int n)
{int i;
first=new node;first->next=NULL;
for(i=0;i>n;i++)
{
s=new node;s->data=a[i];
s->next=first->next;first->next=s;
}
}
template <class t>
linklist<t>addTwoNumbers(linklist<t>a, linklist<t>b)
02.{
03. linklist *head = NULL, *next = NULL, *l = NULL;
04. int v, m = 0, c = 0, d = 0;
05. if (!a && !b) return NULL;
06.
07. if (a) {c = a->data; a = a->next;}
08. if (b) {d = b->data; b = b->next;}
09. v = c + d; m = v / 10; v %= 10;
10. head = tail = new ListNode(v);
11.
12. while (a && b){
13. v = a->data + b->data + m;
14. m = v / 10;
15. v %= 10;
16. tail->next = new ListNode(v); tail = tail->next;
17. a = a->next;
18. b = b->next;
19. }
20.
21. a ? (l = a): (l = b);
22.
23. while (l){
24. v = l->data + m;
25. m = v / 10;
26. v %= 10;
27. tail->next = new ListNode(v); tail = tail->next;
28. l = l->next;
29. }
30.
31. while (m){
32. v = m % 10;
33. m /= 10;
34. tail->next = new ListNode(v); tail = tail->next;
35. }
36.
37. return head;
38.}
int main()
{
int b[21],g[21];
cout<<"请输入一个21位的整数(每个数字以空格键分开):";
for(int i=0; i<21; i++)
{
cin>>b[i];
}
linklist<int>jb(b,21);
jb.PrintList();
cout<<"请输入另一个21位的整数(每个数字以空格键分开):";
for(int i=0; i<21; i++)
{
cin>>g[i];
}
linklist<int>bb(g,21);
bb.PrintList();
cout<<"结果为:";
addTwoNumbers(jb,bb);

return 0;
}
...全文
2003 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 版主 2015-11-22
  • 打赏
  • 举报
回复
错误太多,printlist 是小写 函数中有些变量没声明就用 first=new node 这个node是个模板类,你应该写成first=new node<T> 另外你写的if (!a. && !b) 而 a、b类型是linklist<t>,想表示什么意思 先把这些改了,看还有什么问题再问吧
小弟是菜鸟 2015-11-22
  • 打赏
  • 举报
回复
一个写程序的人,英语的水平应该不仅仅只限于语言中的那几个关键字吧。很明显的错误提示都给你说了,你直接去改不就行了。我看了一下程序逻辑,逻辑上问题不是太大,但是,变量名和函数明你打错了,能不提示错误吗?连第几行都告诉你了。这种低级的错误,是可以避免的。一个小时的代码,需要用三个小时来调试,路还很长,自己慢慢体会。
FightForProgrammer 2015-11-21
  • 打赏
  • 举报
回复
额。。你这是编译错误。根据编译器提示修改 然后调试出正确的程序

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧