Nhờ Sửa code c++

em có một đoạn code như này. bây giờ em không muốn nhập n(tên) nữa, em muốn khai báo tên trong mảng luôn thì sửa thế nào???

using namespace std;
void swap ( int &a , int &b)
{
    int t = a;
        a = b;
        b = t;
}
int main()
{
				char *dong[100];
                int i , n, j ;
                cout << " nhap so ten : ";
                cin>>n;
                // nhap mang
                for ( i = 0 ; i < n ; i++ )
                {
                     dong[i] = new char [100];
                     cout << " nhap ten lan luot la  "<< i +1 << " : ";
                     fflush(stdin);
                     cin.getline(dong[i],100);
                }
                // sap xep mang
                for ( i = 0 ; i < n; i++ )
                {
                    for (  j = i+1 ; j <= n ; j++)
                    {
           
                        if ( (strcmp(dong[i],dong[j]))> 0 )
                        {
                            swap ( dong[i], dong[j]);
           
                       
                        }
                    }
                }
                // in man
                cout << " sau khi sap xep ten la : \n";
                for ( i = 0 ; i <= n ; i++ )
                {
           
                      cout << dong[i] << endl;
                }
                system ("pause");
                return 0;
            }

Đã là C++ thì còn dùng char[] làm gì em, dùng std::string luôn và ngay.
Đã là mảng thì em phải nhập trước số lượng phần thử để chương trình chuẩn bị trước vùng nhớ. Còn nếu không muốn phải nhập trước thì em chọn kiểu dữ liệu năng động hơn, ví dụ std::list

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?