Hàm đổi chỗ có đúng không?

moi nguoi cho em hỏi là hàm đổi chỗ của em có đúng không ạ. em chạy thì ko sắp xếp được

#include<iostream>
#include<stdio.h>
#include<fstream>
#include<stdlib.h>

using namespace std;
//khai bao ham
void doiCho(int*a);//Ham doi cho
void sapXep(int*a,int n);
void xuat(int *a,int n);//Ham xuat

//===chuong trinh chinh===
int main()
{
    //khai bao tep
    ifstream fin("daysonguyen.txt");

    //khai bao bien
    int n,i;
    int *a;

    //doc so phan tu tu tep
    fin>>n;

    //cap phat bo nho cho con tro
    a=(int*)calloc(n,sizeof(int));

    //doc vao day so tu tep
    for(i=0;i<n;i++) fin>>a[i];

    //dua ra day so vua doc
    printf("Dãy số đọc từ tệp là: ");
    xuat(a,n);

    //sap xep day tang dan
    sapXep(a,n);

    //dua ra day so sau khi sap xep
    printf("\nDãy số sau khi sắp xếp là: ");
    xuat(a,n);

    cout<<endl;
    return 0;
}
//===dinh nghia ham===
void doiCho(int *a)
{
    int i,j;
    int tg;
    if(a[i]<a[j])
    {
        tg=a[i];
        a[i]=a[j];
        a[j]=tg;
    }
}
void sapXep(int*a,int n)
{
    for(int i=0;i<n;i++)
        for(int j=i+1;j<n;j++)
             doiCho(a);
      
}
void xuat(int *a,int n)
{
    for(int i=0;i<n;i++)
        printf("%d  ",a[i]);
}

Đổi chỗ mà không truyền tham số cho ij à?

3 Likes

Thay bằng doicho(int&, int&); đi bạn :smiley: để i, j thì chỉ dùng được mỗi bài đó thôi.

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