我是C ++的新手,所以我不太了解,但我想学习和练习。我编写了一个代码,用户将在其中说明他/她想要写多少人的名字,名字将以字符为单位。然后我将使用插入对此进行排序,以查看按字母顺序排序的名称。
#include <iostream>
using namespace std;
class Name{
public:
void sortInsertion(int, char* );
};
void Name::sortInsertion(int size, char *c){
for (int i = 1; i < size - 1; i++){
int j;
j = i;
while (j > 0 && c[j] < c[j - 1]){
swap(c[j], c[j - 1]);
j = j - 1;
}
}
}
int main(){
Name n;
char* name;
name = new char[30];
int* in;
int size = 0;
in = new int[size];
cout << "How many people?: ";
cin >> size;
for (int i = 0; i < size; i++){
cout << "Person " << i+1 <<": "<< endl;
cout << "Full Name: ";
cin.ignore();
cin.getline(name,29);
cout << endl;
}
n.sortInsertion(size, name);
for (int i = 0; i < size; i++){
cout << "Person " << i + 1 << ": " << endl;
cout << "Full Name: ";
cout << name << endl;
}
system("pause");
}
这是我的代码。它没有显示我希望它显示的结果,输出错过了名称的第一个字母,只重复打印给定的最后一个用户输入。 你能告诉我什么是错的吗?任何帮助和提示真的很感激:))