Giúp giải thích code


#include <iostream>
#include<stdio.h>
Using namespace std;
void NhapMang(int a[], int n){
    for(int i = 0; i < n; i++){
        printf("\nNhap a[%d] = ",i);
        scanf("%d", &a[i]);
    }
}
void XuatMang(int a[], int n){
    for(int i = 0; i < n; i++){
        printf("%d", a[i]);
    }
} 
void TangDan(int a[], int n){
    int tg;
    for(int i = 0; i < n - 1; i++){
        for(int j = i + 1; j < n; j++){
            if(a[i] > a[j]){
                tg = a[i];
                a[i] = a[j];
                a[j] = tg;        
            }
        }
    }
} 
void GiamDan(int a[], int n){
    int tg;
    for(int i = 0; i < n - 1; i++){
        for(int j = i + 1; j < n; j++){
            if(a[i] < a[j]){
                tg = a[i];
                a[i] = a[j];
                a[j] = tg;        
            }
        }
    }
} 
int main(){
    int a[100];
    int n;
    printf("\nNhap so luong phan tu n = ");
    do{
        scanf("%d", &n);
        if(n <= 0){
            printf("\nNhap lai n = ");
        }
    }while(n <= 0);    
NhapMang(a, n);
    printf("\nMang vua nhap la: ");
    XuatMang(a, n);
    TangDan(a, n);
    printf("\nMang sap xep tang dan la: ");
   XuatMang(a, n);
GiamDan(a, n);
    printf("\nMang sap xep giam dan la: ");
   XuatMang(a, n);  
}

có cú pháp nào, lệnh nào bạn chưa hiểu?

2 Likes

từ đầu đến cuối luôn á, mình hiểu sương sương

Cậu hiểu gì thì giải thích cho bọn tớ được không? :smile:
Bọn tớ sẽ check và giúp cậu hiểu tiếp.

Nhìn chung, nếu cậu nói “không hiểu từ đầu tới cuối”, bọn tớ sẽ hiểu là “tôi đang lười, ai giúp tôi giải thích code này làm gì đi, để tôi sống sót qua ngày mai khi thầy giáo hỏi. Cảm ơn!”. Không có chuyện cậu không hiểu từ đầu tới cuối (nếu có, cậu cần phải học lại các cú pháp cơ bản trước khi nói tiếp), và bọn tớ sẽ không thể giúp cậu nếu cậu lười biếng vậy :smile:

Ai đó có thể giải thích cho cậu đoạn code này tại thời điểm này, cơ mà cậu không thể làm như vậy khi ra ngoài làm việc đâu :smile:

Cậu có 1 ngày để giải thích rõ ràng cậu đã hiểu gì. Sau 1 ngày, topic này sẽ bị đóng lại vĩnh viễn. Nếu bạn nào có nhã ý giúp bạn ấy, vui lòng reply trong thời hạn này.

5 Likes

thì là mình nhập n số lượng phần tử trong hàm sau đó chuyển sang module nhapmang, dùng for có n là giới hạn nhập vào mảng a rồi in lại mảng vừa nhập và xét tăng dần giảm dần. mình hiểu được như thế

Rồi, cậu có thể kể chi tiết cậu chưa hiểu cái gì được không? Tớ thấy cậu đã hiểu từ đầu tới cuối rồi mà? :smile:

3 Likes

mấy cái dòng điều kiện bên trong á
này nè cậu :
if(a[i] > a[j]){
tg = a[i];
a[i] = a[j];
a[j] = tg;

đây chỉ là so sánh và gán thôi, cú pháp này thì có gì lạ đâu?

2 Likes

Đó là cách implement swap 2 phần tử trong truyền thuyết :smile:
Cậu thử tự giải thích xem nó swap cái gì, và swap thế nào hộ tớ được không?

3 Likes

Thớt xem thuật toán Selection Sort (sắp xếp chọn), vì luồng dữ liệu không khác.

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