首页 新闻 会员 周边

大神帮我看看我的程序哪里出错了啊?不显示结果啊。

0
悬赏园豆:20 [已解决问题] 解决于 2014-07-17 15:13
 1 #include <iostream>
 2 #include <string>
 3 #include <iterator>
 4 #include <algorithm>
 5 
 6 using namespace std;
 7 
 8 void addstring(string & str1, string & str2)
 9 {
10     string out;
11     int c = 0;//设置进位 
12     int sum = 0;//枚举每一位 
13     for (unsigned int i = 0; i < str1.length(); i ++)
14     {
15         sum = str1[i]-'0'+str2[i]-'0' + c;
16       
17         if (sum >= 10)
18         {
19             out[i] = sum%10 + '0';
20             c = 1;
21         }else
22         {
23             out[i] = sum + '0';
24             c = 0;
25         }
26     }
27     for (unsigned int i = str1.length(); i < str2.length(); i ++)
28     {
29         sum = str2[i]-'0'+c;
30         if (sum >= 10)
31         {
32             out[i] = sum%10 + '0';
33             c = 1;
34         }else
35         {
36             out[i] = sum + '0';
37             c = 0;
38         }
39     }
40     if (c == 1) out.push_back(1+'0');
41     reverse(begin(out), end(out));
42     
43     cout << out;
44     
45     
46 }
47 
48 
49 int main()
50 {
51     string str1;
52     cin >> str1;
53     string str2;
54     cin >> str2;
55     string str3;
56     int c;
57     
58     auto len1 = str1.length();
59     auto len2 = str2.length();
60     
61     reverse(begin(str1), end(str1));
62     reverse(begin(str2), end(str2));
63     
64     cout << "-------------------" << endl;
65     cout << str1 << endl;
66     cout << str2 << endl;
67     cout << "-------------------" << endl;
68     
69     
70     if (len1 < len2) addstring(str1, str2);
71     else addstring(str2, str1);
72     
73    
74         
75     return 0;
76 } 

这个程序是实现的超长正整数相加。编译没有问题,但是不显示结果啊。调了一天了,调试结果也好象没有问题啊。。 。 

ii沙漠的主页 ii沙漠 | 初学一级 | 园豆:114
提问于:2014-07-17 14:26
< >
分享
最佳答案
0

string out;

out[i] = sum%10 + '0';

收获园豆:20
Launcher | 高人七级 |园豆:45045 | 2014-07-17 14:31

 不太懂啊,放哪在行啊?

ii沙漠 | 园豆:114 (初学一级) | 2014-07-17 14:40

@ii沙漠: 不是放哪儿行,我的意思是你没有给 out 分配内存,你就使用下标方式赋值了,这是错误的。

Launcher | 园豆:45045 (高人七级) | 2014-07-17 14:45

@Launcher: 谢谢。果然是啊。

ii沙漠 | 园豆:114 (初学一级) | 2014-07-17 15:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册