Giúp đỡ bài tập về mảng

Chuyển các số chẳn chia hết cho 3 về đầu mảng, các số lẻ chia hết cho 3 về cuối mảng, các số ko chia hết cho 3 về ở giưa, mảng…
chỉ dung 1 vong lap for…ko dùng mảng phụ

Bạn không nghĩ mà cứ tắc là hỏi luôn vậy à? Hãy nói ra thuật toán của bạn. Cho mọi người xem code bạn đã làm thì mới chỉ ra cho bạn những gì chưa tốt. Diễn đàn không phải là nơi hỏi bài tập đâu bạn ạ. Những thuật toán đơn giản như thế này. Bạn nên dành nhiều thời gian hơn. Không thì mọi người không trả lờ bạn đâu. Chứ cứ lên diễn đàn viết nguyên cái đề bài không đầu k đuôi k thưa không gửi thì ai có hứng giúp bạn được chứ.

6 Likes

do hui trua e cần gấp nên z thui…với e kung mới zô ak…còn tệ môn nay lắm

ham main

int array[12] = {3,4,6,12,4,9,16,18,6,4,7,21};
        	int i,j,k;
        	i = j =0;
        	k = 11;

        	for (i = 0; i < k; ) {
        		if (array[i] % 6 == 0) {
        			swap(array[i], array[j]);
        			j++;
        		} else if (array[i] % 3 == 0) {
        			if (array[k] % 3 != 0) {
        				swap(array[i], array[k]);
        			} else {
        				k--;
        			}
        		}
        		i++;
        	}

@Khanh_Pham2 minh bo duoc while r nhe

1 Like

Thuật toán chia ba. Rất đẹp. https://en.wikipedia.org/wiki/Dutch_national_flag_problem

2 Likes

ko dk dung gif ngoai for voi if…

minh lam hoom wwa h mak ko dk…

n++;
for (int i=0;i<n;i++){
if(a[i]>=x){
for (int j=n-1;j>i;j–){
a[j]=a[j-1];
a[i]=x;
}break;
}
}
//day la thuat toan giả sử mảng tăng dần rui…h chèn vao 1gia tri sao cho van tăng dần…
minh nhâp 2 3 3 4
nhập số 1 nó in ra 11334…mấy bạn cố pít sai chỗ nào ko

Lập topic mới đi bạn.

sai có cai dấu ngoac,hihi

Thực ra thì n++; ngay đầu là chưa đúng vì bạn đã thêm phần tử đâu :smiley: xong rồi n++; mới đúng.

ngoài cách trên ra còn cách nào nữa không nhỉ…

Vậy là đẹp rồi còn gì.

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