我正在编写的程序采用一系列名称和年龄并按字母顺序排列。有时程序会起作用。大多数情况下,在打印字母顺序列表的过程中,我会遇到分段错误。
这是我头文件
中的示例public:
static const int MAXSTU = 50;
Student();
void inputData();
void sortData();
void printOriginalData();
void printAlphaData();
private:
int arraytotal;
int *temp1;
std::string *temp2;
std::string originalname[MAXSTU];
std::string *alphaname[MAXSTU];
int originalage[MAXSTU];
int *alphaage[MAXSTU];
这些是导致问题的功能。
void Student::sortData() {
for(int i=0;i < arraytotal;i++) {
if (originalname[i] > originalname[i+1] ) {
temp1 = alphaage[i];
alphaage[i] = alphaage[i + 1];
alphaage[i + 1] = temp1;
temp2 = alphaname[i];
alphaname[i] = alphaname[i + 1];
alphaname[i+1]= temp2;
}
}
}
void Student::printAlphaData()
{
cout << "\nAlphabetized list\n";
cout << "---------------------------\n";
for (int i = 0; i < arraytotal; ++i)
{
cout << left << setw(30) << *alphaname[i];
cout << right << setw(10) << *alphaage[i] << endl;
}
cout << endl;
}
任何有关确定问题所在的帮助都将受到赞赏。还有更好的方法将我的数组按字母顺序排序吗?