Lỗi gán mảng không hợp lệ

c++

(Hồng Minh Lê) #1

cho em hỏi em sai ở đâu ạ? nó cứ bảo gán mảng không hợp lệ.

using namespace std;

//===chuong trinh chinh===
int main()
{
    //Khai bao bien
    char name[10][6];
    char tg[6];
    int i,j,n;

    //Nhap so luong ten
    printf("Nhập vào số lượng tên : ");
    scanf("%d",&n);

    //Nhap ten
    printf("Nhập các biến cần sắp xếp :\n");
    for(i=0;i<n;i++)
    {
        printf("%d : ",i+1);
        scanf("%s",name[i]);
    }

    //sap xep cac ten theo thu tu ABC
    for(i=0;i<n;i++)
        for(j=i+1;j<n;j++)
        {
            if((name[i]-name[j])>0)
            {
            tg=name[i];
            name[i]=name[j];
            name[j]=tg;
            }
        }

    //Dua ra danh sach sau khi sap xep theo thu tu ABC
    printf("Danh sách tên theo thứ tự ABC là: ");
    for(i=0;i<n;i++)
        printf("%d : %s",i,name[i]);

    cout<<endl;
    return 0;
}

(Đặng Huỳnh Anh) #2
  1. Để gán chuỗi này cho chuỗi kia bạn nên dùng strcpy(A,B); nhé
  2. Bạn nhớ #include thư viện đầy đủ
  3. Mình tạm sửa code của bạn như sau
using namespace std;
#include <stdio.h>
#include <string.h>

//===chuong trinh chinh===
int main()
{
    //Khai bao bien
    char name[10][6];
    char tg[6];
    int i,j,n;

    //Nhap so luong ten
    printf("Nhập vào số lượng tên : ");
    scanf("%d",&n);

    //Nhap ten
    printf("Nhập các biến cần sắp xếp :\n");
    for(i=0;i<n;i++)
    {
        printf("%d : ", i+1);
        scanf("%s", name[i]);
    }

    //sap xep cac ten theo thu tu ABC
    for(i=0;i<n;i++)
        for(j=i+1;j<n;j++)
        {
            if((name[i]-name[j])>0)
            {
                strcpy(tg,name[i]);
                strcpy(name[i],name[j]);
                strcpy(name[j],tg);
            }
        }

    //Dua ra danh sach sau khi sap xep theo thu tu ABC
    printf("Danh sách tên theo thứ tự ABC là: ");
    for(i=0;i<n;i++)
        printf("%d : %s", i, name[i]);

    cout<<endl;
    return 0;
}


(Hồng Minh Lê) #3

Về phần thư viện thì em khai báo rồi. Còn cái hàm strcpy() em cuzng có dùng nhưng hình như linux ko cho dùng thù phải


(Đặng Huỳnh Anh) #4

hàm strcpy trong thư viện string.h . Mình chạy bình thường mà nhỉ? Tại vì mảng char không thể gán như biến được.


(Hồng Minh Lê) #5

Em có dùng hàm strcpy() rồi nhưng nó báo lỗi. Hình như linux nó ko cho dùng mấy hàm kiểu strcpy() hay hàm đảo xâu strrev() cuzng ko dùng được.


(Đặng Huỳnh Anh) #6

Bạn có thể cho mình xem lỗi được không?


(Hồng Minh Lê) #8

ok bác em tìm ra lỗi của em rồi


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