01/10/2018, 11:40

Bài toán nhập xuất một mảng bình thường

một bài toán tưởng như khá đơn giản nhưng lâu k động đến, đây có thể là một lỗ hổng kiến thức khá lớn: hàm nhập thì vẫn thực hiện bình thường, nhưng lại không xuất ra được. mọi người chỉ ra lỗi sai cho mình với đồng thời hãy thứ lỗi cho sự ngu dốt của mình, mình nhất định sẽ tự trừng phạt mình vì điều đó
> #include

    using namespace std;
    int i;
    void nhap(int a[],int n){
    	cout<< "nhap so ptu: n= ";cin>>n;
    	cout<< "nhap cac ptu: 
";
    	for(i=0;i<n;i++){
    		cin>>a[i];
    	}
    }
    void xuat(int a[],int n){
    	cout<< "mang vua nhap la: 
";
    	for(i=0;i<n;i++){
    		cout<<a[i]<< "	";
    	}
    }
    int main()
    {
    	
    	int a[50],n;
    	nhap(a,n);
    	xuat(a,n);
    	return 0;
    }
Henry viết 13:44 ngày 01/10/2018

n ở mỗi hàm là khác nhau. Hết

tran luong viết 13:46 ngày 01/10/2018

vậy là sao. bạn chỉ rõ được không, mình tưởng n dùng chung cho 2 hàm mà

Henry viết 13:49 ngày 01/10/2018

Mỗi hàm, cứ in một cái n ra là hiểu vấn đề.

tran luong viết 13:46 ngày 01/10/2018

ak. t biết rồi. nghĩa là phải khai báo n ở hàm main. nhưng t thắc mắc là: tại sao không cần khai báo mảng a[] ở hàm main, mà hàm xuat vẫn xuất được

Henry viết 13:41 ngày 01/10/2018

Mảng cũng là một con trỏ. Bạn hỏi vậy là hiểu bạn học không kĩ rồi. Hổng cái nào như cái core concept thế này thì. Từ khóa mình bôi đen rồi, tìm hiểu thêm

tran luong viết 13:55 ngày 01/10/2018

bạn giải thích rõ giúp mình đc ko. mình biết con trỏ , con trỏ mảng, con trỏ hàm, cách khai báo con trỏ rồi. nhưng mình không biết tại sao biến mảng có thể khai báo ở một hàm và lưu giữ giá trị từ hàm này qua hàm khác, trong khi đó biến thường thì phải khai báo qua hàm main. Nếu bạn biết thì giúp mình, mình rất cảm ơn.

Henry viết 13:43 ngày 01/10/2018

Muốn biết thì cứ in cái mảng ra là hiểu. Thay vì a[0], a[1], a[2] thì là a, a + 1, a + 2

rogp10 viết 13:43 ngày 01/10/2018

không cần khai báo mảng a[] ở hàm main

a[] của main và a[] của mấy hàm đó là khác nhau, do bạn đặt trùng tên mà thôi.

a[] nằm ngay trên khai báo hàm chỉ là hình thức, là cái slot để bạn truyền a[] bên ngoài vào. Thực ra trường hợp của a[] không khác mấy của n vì cùng là tham trị. Nhưng do a[] tự động suy biến thành con trỏ cấp 1 nên có thể xem toàn bộ nội dung của a[] đều truyền qua “reference” a[].

tran luong viết 13:41 ngày 01/10/2018

cái này bạn có tham khảo ở đâu ko. cho mình nguồn để tham khảo với

Dark.Hades viết 13:53 ngày 01/10/2018

Cái này C++ giữ nguyên từ C:

Cách Học – 13 Dec 14

Bài 9: Mảng trong C

Mảng Là tập hợp các phần tử có cùng kiểu dữ liệu. Mảng có mảng 1 chiều, 2 chiều,… và mỗi kiểu dữ liệu thì có 1 kiểu mảng tương ứng (mảng nguyên, mảng thực, mảng ký tự (chuỗi)),… Ta chủ yếu xét về mảng 1 chiều và mảng 2 chiều


Cách Học – 18 Dec 14

Bài 12: Mối quan hệ giữa con trỏ và mảng, chuỗi ký tự trong C

Mảng và con trỏ có mối quan hệ cực ký mật thiết với nhau. Bài viết này sẽ giúp các bạn hiểu thêm được phần nào mối quan hệ đó.

Bài liên quan
0