求大神看看哪儿错了,已经看一天了

weixin_43729886 2019-04-10 10:18:20
判断是否为回文字符串的
...全文
52 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_43729886 2019-04-11
  • 打赏
  • 举报
回复
引用 3 楼 weixin_43729886的回复:
/* 实现两个动态矩阵的乘积(线性代数算法) */ /* 错误可能在第55到70行,你可以运行试试看~ */ #include<iostream> using namespace std; int main() { int m1,n1,m2,n2; int **dm1, **dm2,**dm3; cout << "Please input the first matrix size m1,n1:"; cin >> m1 >> n1; dm1 = new int *[m1];//矩阵dm1,建立m1行 for (int i = 0; i < m1; i++) {//为m1行分配n1个空间 if ((dm1[i] = new int[n1]) == NULL) exit(0); } cout << "请输入矩阵dm1:"; for (int i = 0; i < m1; i++) { for (int j = 0; j < n1; j++) cin >> dm1[i][j]; } cout << "Please input the first matrix size m2,n2:"; cin >> m2 >> n2; dm2 = new int *[m2];//矩阵dm2,建立m2行 for (int i = 0; i < m2; i++) {//为m2行分配n2个空间 if ((dm2[i] = new int[n2]) == NULL) exit(0); } cout << "请输入矩阵dm2:"; for (int i = 0; i < m2; i++) { for (int j = 0; j < n2; j++) cin >> dm2[i][j]; } if (n1 != m2) { cout << "输入错误矩阵,请重新输入!!!"; } else { //新矩阵的行列为m1,n2 dm3 = new int *[m1];//矩阵dm3,建立m1行 for (int i = 0; i < m1; i++) {////为m1行分配n2个空间 if ((dm3[i] = new int[n2]) == NULL) exit(0); } //录入dm3 for (int i = 0; i < m1 ; i++) { for (int j = 0;j < n2; j++) { for (int x = 0; x <m2; x++) { dm3[i][j]+=dm1[i][x] * dm2[x][j]; } } } for (int i = 0; i < m1; i++) { for (int j = 0; j < n2; j++) { cout << dm3[i][j]<<" "; } cout << "\n"; } } //释放空间 for (int i = 0; i < m1; i++) { delete[]dm1[i]; } delete[]dm1; for (int i = 0; i < m2; i++) { delete[]dm2[i]; } delete[]dm2; system("pause"); return 0; }
还有,看看哪儿错了,,,,,现在没奖赏,发不了贴
weixin_43729886 2019-04-11
  • 打赏
  • 举报
回复
/* 实现两个动态矩阵的乘积(线性代数算法) */ /* 错误可能在第55到70行,你可以运行试试看~ */ #include<iostream> using namespace std; int main() { int m1,n1,m2,n2; int **dm1, **dm2,**dm3; cout << "Please input the first matrix size m1,n1:"; cin >> m1 >> n1; dm1 = new int *[m1];//矩阵dm1,建立m1行 for (int i = 0; i < m1; i++) {//为m1行分配n1个空间 if ((dm1[i] = new int[n1]) == NULL) exit(0); } cout << "请输入矩阵dm1:"; for (int i = 0; i < m1; i++) { for (int j = 0; j < n1; j++) cin >> dm1[i][j]; } cout << "Please input the first matrix size m2,n2:"; cin >> m2 >> n2; dm2 = new int *[m2];//矩阵dm2,建立m2行 for (int i = 0; i < m2; i++) {//为m2行分配n2个空间 if ((dm2[i] = new int[n2]) == NULL) exit(0); } cout << "请输入矩阵dm2:"; for (int i = 0; i < m2; i++) { for (int j = 0; j < n2; j++) cin >> dm2[i][j]; } if (n1 != m2) { cout << "输入错误矩阵,请重新输入!!!"; } else { //新矩阵的行列为m1,n2 dm3 = new int *[m1];//矩阵dm3,建立m1行 for (int i = 0; i < m1; i++) {////为m1行分配n2个空间 if ((dm3[i] = new int[n2]) == NULL) exit(0); } //录入dm3 for (int i = 0; i < m1 ; i++) { for (int j = 0;j < n2; j++) { for (int x = 0; x <m2; x++) { dm3[i][j]+=dm1[i][x] * dm2[x][j]; } } } for (int i = 0; i < m1; i++) { for (int j = 0; j < n2; j++) { cout << dm3[i][j]<<" "; } cout << "\n"; } } //释放空间 for (int i = 0; i < m1; i++) { delete[]dm1[i]; } delete[]dm1; for (int i = 0; i < m2; i++) { delete[]dm2[i]; } delete[]dm2; system("pause"); return 0; }
  • 打赏
  • 举报
回复
s1、s2要预先分配足够的空间,char s1[] = ""这样不行,改成char s1[256];之类的



stherix 2019-04-11
  • 打赏
  • 举报
回复
s1,s2是不同的字符数组,他们的值是字符串的首地址,所以永远也不会相等 应该用strcmp来做字符串比较 或者用c++标准库的std::string来代替c风格的字符串

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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