30/09/2018, 16:09

Thắc mắc một số bài tập trong C/C++

chào mọi người, mình đang là sv năm 1 đang học về C/C++, nhưng mình có một số bài mà mình không biết làm, có mấy bài thì mình làm được nhưng dài quá, mình muốn tìm hiểu cách nào có thề ngắn gọn hơn . mong moi người xem và giúp mình với ạ
Bài 1
Bài 2

bài 3 : kt số nguyên tố

bài này thì mình biết thuật toán nhưng ko hiểu sao mỗi lần chạy là mình bị vướng số 3 và sô 9 , số 3 thì nó ko chạy, còn số 9 thì nó báo là số nguyên tố.

mình xin post trường hợp xét n (n là số nhập vào) >=2 thôi ạ,

 for(int i =2; i *i <=n; i++)
{
    if(n%i ==0)
    {
        return 0;
    }
    else
    {
        return 1;
    }
}

bài 4 mình thắc mắc những dòng code này, đây là bài mẫu nhưng mình có 1 chỗ ko hiểu

void NoiMang(int a[], int &n, int b[], int m, int c[], int &k)
{
    int i=0, j=0;
    k=0;
    while(i<n&&j<m)
    {
        c[k++]=a[i++];
        c[k++]=b[j++];
    }
    while(i<n)
        c[k++]=a[i++];
    while(j<m)
        c[k++]=b[j++];
}

đó là tại sao chỉ truyền tham chiếu cho n trong mảng a mà m trong mảng b thì lại ko có a? dòng đầu tiên luôn ấy ạ
mình cam ơn m.n đã xem a

Nguyễn Minh Dũng viết 18:23 ngày 30/09/2018

Hi @luannguyen96, anh đã mang bài 1 ra đây

Viết hàm chèn phần tửcó giá trị X vào phía sau tất cả các phần tử có giá trị chẵn trong mảng bài này thì mình làm nhưng chạy nó báo lỗi

Và bài 2 ra đây
Viết hàm chèn phần tửcó giá trị X vào phía sau tất cả các phần tử có giá trị chẵn trong mảng bài này thì mình làm nhưng chạy nó báo lỗi

bài 3 : kt số nguyên tố

Bài này diễn đàn mình có rất nhiều rồi. Em thử dùng tính năng search để tìm nhé

bài 4 mình thắc mắc những dòng code này, đây là bài mẫu nhưng mình có 1 chỗ ko hiểu

Bài này liên quan đến bài nào? Đề của bài này là gì vậy em?

Luannguyen viết 18:23 ngày 30/09/2018

đề bài bài 4 đây anh Cho 2 mảng sốnguyên a và b kích thước lần lượt là n và m. Viết chương
trình nối xen kẻ (đan xen)lần lượt các phần tửmảng a và b vào mảng c.

em ko hiểu tại sao mảng b thì có truyền tham chiếu còn mảng kia thì ko a

Phạm Hoàng Tuấn viết 18:16 ngày 30/09/2018

mảng kia là mảng nào e, thực chất khi truyền 1 mảng vào 1 hàm, là ta truyền tham chiếu nhé e, nó sẽ truyền địa chỉ của phần tử đầu tiên của mảng.

Luannguyen viết 18:13 ngày 30/09/2018

void NoiMang(int a[], int &n, int b[], int m, int c[], int &k)

ý em là sao mảng a có truyền tham chiếu còn mảng b thì ko a?

Nguyễn Minh Dũng viết 18:11 ngày 30/09/2018

ý em là sao mảng a có truyền tham chiếu còn mảng b thì ko a?

Câu này chắc em nói nhầm, cả mảng a và mảng b đều là truyền con trỏ.

Riêng phần code em có đính kèm theo, người viết code họ truyền tham chiếu cho n là vì họ quên, nhầm. Vì n không cần phải truyền tham chiếu, mà thậm chí nếu truyện như vậy còn sai nữa.

void NoiMang(int a[], int &n, int b[], int m, int c[], int &k)
{
    int i=0, j=0;
    k=0;
    while(i<n&&j<m)
    {
        c[k++]=a[i++];
        c[k++]=b[j++];
    }
    while(i<n)
        c[k++]=a[i++];
    while(j<m)
        c[k++]=b[j++];
}

Tham chiếu (tức reference cho phép ta thay đổi giá trị của biến nó tham chiếu tới. Trong ví dụ NoiMang ta không có nhu cầu thay đổi nk. Việc truyền &n&k hoặc là quên, hoặc là sai.

Bài liên quan
0