30/09/2018, 20:30

Anh (chị) cho em hỏi đoạn code sau

#include <iostream>

using namespace std;

int main()
{
	int *head, *p, *q, n, tam;
	cout << "amount "; cin >> n;
	head=new int[n];
	for (p=head; p<head+n; p++){
		cin >> *p;
	}
	for (p=head; p<head+n-1; p++){
		for (q=p+1; q<head+n; q++){
			if(*q<*p){
				tam=*p;
				*p=*q;
				*q=tam;
			}
		}
	}
	for (p=head; p<head+n; p++){
		cout << *p << endl;
	}
}

đoạn code trên sắp sếp không dùng mảng em thắc mắc cái dòng

head=new int[n];
	for (p=head; p<head+n; p++)

không biết nó chạy ntn xin các anh (chị) giải thích giúp em.

    1. indent preformatted text by 4 spaces

Hưng Đỗ viết 22:33 ngày 30/09/2018

bác viết như thế này em cũng có chút bối rối à, head=new int[n]; cái này là khai báo mảng mà bác new dùng cấp phát động mà chưa thấy delete ở đâu làm em cũng bối rối mà cũng không hiểu tại sao đang trong vòng for có cả ; rồi cin :bối rối:

Sáng Béo viết 22:43 ngày 30/09/2018

chắc do không bỏ vào markdown code nên markdown nó làm code lộn xộn hết rồi

Ngô Doãn Tuấn viết 22:33 ngày 30/09/2018

Mình bỏ vào markdow rồi đó.
Mọi người có thể xem

Sáng Béo viết 22:34 ngày 30/09/2018

cái này nó cũng tương tự mảng thôi… một cách viết khác.
nó cũng duyệt qua địa chỉ của các phần tử rồi so sánh giá trị, rồi đổi chỗ các giá trị.

bạn có thể hiểu head + ihead[i], là địa chỉ phần tử thứ i của mảng head (bắt đầu từ head[0])

còn cái head = new int[n] là cấp phát 1 dãy n ô nhớ cho head, head trỏ vào đầu dãy.

Chính Phạm viết 22:46 ngày 30/09/2018

bỏ vào markdow để code không bị là thế nào thế. bạn hướng dẫn mình với

Sáng Béo viết 22:40 ngày 30/09/2018

bỏ vào markdow để code không bị là thế nào thế. bạn hướng dẫn mình với

đây bạn ơi

Làm sao để có thể hiển thị syntax highlighting bằng markdown? Các bạn phải đánh dấu ``` như ví dụ dưới đây Chú ý, dấu ``` được tạo ra bởi nút nằm bên trái số 1 trên bàn phím, nút này sẽ là ~ khi bấm giữ Shift Ví dụ cho C Nội dung: ``` void main() { } ``` Và đừng quên ``` ở cuối Kết quả void main() { } Ví dụ cho Pascal Nội dung: ``` Program HelloWorld; Begin WriteLn('Hello world!') {no ";" is required after the last statement of a block - adding one adds a "null stateme…
Bài liên quan
0