01/10/2018, 13:52

Cần giải thích đoạn if trong code in mảng theo thứ tự giảm dần

// in ra so tu lon den be
#include<stdio.h>
#include<conio.h>
int main() {
	int a,n[100],i,j,v;
	printf("nhap gia tri"); scanf("%d",&a);
	for (i=0;i<a;i++) scanf("%d",&n[i]);
	for (i=0;i<a-1;i++) 
	for(j=i+1;j<a;j++)
	{
		if (n[i]<n[j]) {
			v=n[i];
			n[i]=n[j];
			n[j]=v;
		}
	}
	for (j=0;j<a;j++) printf("%d ",n[j]);
}

đoạn n[j]=n[i]
rồi n[i]=n[j] ==> tráo đổi số cho nhau biết mỗi nhiêu đó
rồi printf ra n[j] là sao ấy nhỉ ^^

rogp10 viết 15:59 ngày 01/10/2018
Em suy nghĩ mãi về cái về cái thuật toán này mà không ra @@ Các bác cho thằng em sáng dạ ra với em vẫn không hiểu nó được vận hành như thế nào ? ai đó giúp em mô phỏng hoạt động của nó với. Em cảm ơn ! int[] myArray={3,-3,4,20,40,28,39}; for(int i=0; i<myArray.length-1;i++){ for(int j = i; j<=myArray.length-1;j++){ if(myArray[i]<myArray[j]){ int temp; temp=myArray[i]; myArray[i]=myArr…

Cái này mình đã bàn rồi, thực ra logic của nó chỉ là Selection sort mà thôi, hay có thể gọi là “phiên bản lỗi của Selection sort”. Vì a[i] sẽ đóng vai trò max (bài này là max) trong Selection sort.

Nó còn có tên là selection “phiên bản lỗi” là do a[i] đóng vai trò như max, nên tại sao không đặt maxPos rồi swap 1 lần với a[i]? Khi bạn viết đúng thì đây là thuật toán dễ hiểu nhất.

Nguyễn Đức Hưng viết 16:03 ngày 01/10/2018

(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)

HK boy viết 15:54 ngày 01/10/2018

Thớt hỏi code C, bạn up code C++ vào làm gì?

Bài liên quan
0