c++ - C++ 从结构中调用字符串会停止程序
问题描述
我是 C++ 的初学者。我感谢任何可以改进我的代码的建议,但我真正想要的是解释为什么我当前的代码没有返回我想要的。
#include <iostream>
#include <string>
using namespace std;
struct MATRIX {
float values[1][1];
string names;
};
MATRIX get_matrix(string name, MATRIX m){
m.names = name;
cout << "Enter values of 2x2 Matrix:" << endl;
cin >> m.values[0][0];
cin >> m.values[0][1];
cin >> m.values[1][0];
cin >> m.values[1][1];
return m;
}
// end get_matrix1
MATRIX get_matrix2(string name2, MATRIX m2){
m2.names = name2;
cout << "Enter values of 2x2 Matrix:" << endl;
cin >> m2.values[0][0];
cin >> m2.values[0][1];
cin >> m2.values[1][0];
cin >> m2.values[1][1];
return m2;
}
int main(){
string testname;
MATRIX matrixtest;
string testname2;
MATRIX matrixtest2;
cout << "Name 1st Matrix:" << endl;
cin >> testname;
MATRIX result = get_matrix(testname, matrixtest);
cout << "Name 2nd Matrix:" << endl;
cin >> testname2;
MATRIX result2 = get_matrix2(testname2, matrixtest2);
cout << "[" << result.values[0][0] << "," << result.values[0][1] << "]" << endl;
cout << "[" << result.values[1][0] << "," << result.values[1][1] << "]" << endl << endl;
cout << "[" << result2.values[0][0] << "," << result2.values[0][1] << "]" << endl;
cout << "[" << result2.values[1][0] << "," << result2.values[1][1] << "]" << endl << endl;
}
它应该返回矩阵的名称及其值。每当它在结果中遇到名称成员时,它就会停止程序。
编辑:更新到当前代码
解决方案
您必须指定元素的数量,而不是最大索引,才能在 C++ 中声明数组。
有了这个声明
float values[1][1];
只有values[0][0]
可用。
声明应该是
float values[2][2];
推荐阅读
- javascript - 无法在 React js 中设置必填字段
- c++ - 我正在尝试在线解决问题,需要帮助,因为我无法通过隐藏的测试用例。请指出我的代码中的错误
- mysql - 生成 MySQL INSERT/DELETE 多行语句
- javascript - 如何在 js 中实现带有范围滑块的图表,最好对 React 友好?
- node.js - 如何在 node.js 中发送邮件而不提供凭据(用户名和密码)
- entity-framework - SignalR 向特定客户端发送通知它不起作用
- c# - 如何在 C# 中正确多次拆分/除以整数?
- wordpress - 如何将安装了 Wordpress 的两个服务器实例连接到包含 WP 数据库的第三个服务器实例?
- node.js - 完成node.js express中的for循环后如何返回响应?
- r - 解决 R 中具有可变边界的积分问题