结果未显示为我想要的(C ++代码)

时间:2014-11-11 17:15:14

标签: c++ pointers char

我是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");
}

这是我的代码。它没有显示我希望它显示的结果,输出错过了名称的第一个字母,只重复打印给定的最后一个用户输入。 你能告诉我什么是错的吗?任何帮助和提示真的很感激:))

0 个答案:

没有答案