【发布时间】:2014-07-29 02:23:37
【问题描述】:
我已经尝试解决这个问题很久了。在给定的程序中,即使没有触摸它,R 也会不可预测地更新,这可以在我打印 R is %d 的第 30 行中看到。同样在 k 循环的一些迭代之后,它显示出不可预测的行为。我不知道程序执行时会出现什么问题。请帮我解决这个问题。提前致谢。
#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;
int main() {
int T;
int R;
string test;
scanf("%d", &T);
int i = 0;
for (; i < T; i++) {
scanf("%d", &R);
printf("Hi R is %d\n", R);
int j = 1;
char c, p;
int k;
char help[94];
char b = 33;
int lop;
if (R != 0) {
for (k = 0; k < 94; k++) {
help[b + k] = 'f';
}
printf("R is %d\n", R);
for (; j <= R; j++) {
cin >> c >> p;
printf("C is %c and P is %c\n", c, p);
help[c] = p;
}
}
cin >> test;
int size = test.size();
if (R != 0) {
for (i = 0; i < size; i++) {
if (help[test.at(i)] != 'f')
test.replace(i, i, test.at(i), help[test.at(i)]);
}
}
cout << "string till now is " << test;
}
return 0;
}
抱歉,代码太长了。 输入输出示例是
5
3
Hi R is 3
R is 1717986918
【问题讨论】:
-
您能发布一些输入/输出示例吗?顺便说一句......你应该处理你的变量名......
-
@NirMH 我已经编辑并提供了一个输入/输出示例。
-
@rightfold 我只会编辑并使其最小化。抱歉,代码很大。
-
我已经在 VS2012 Win64bit 上执行了您的代码,没有任何问题。我没有观察到
R的任何变化。在第二个R打印它说R is 3
标签: c++ character codeblocks dev-c++