c++模板,排序出现问题

img

img

我是按照b站上的教程学的
我不明白为什么一直会报错,语法也没问题啊,
可以帮忙看看

有语法错误和逻辑错误,语法错误是三个for循环里面的逗号,要改成分号,然后是template那里需要改一下,然后逻辑错误是交换数组元素的那个if那里,要交换数组元素,而不是交换循环变量的值。修改如下:



#include <iostream>

using namespace std;

template <class T>
void sort(T arr[], int len){
    
    for(int i=0;i<len;i++){
        int max=i;
        for(int j=i+1;j<len;j++){
            if(arr[max]<arr[j]){
                max=j;
            }
        }
        if(max!=i){
            char tempt ;
            tempt    = arr[i];
            arr[i] =arr[max];
            arr[max] = tempt;
        }
    }
    
    
} 

template <class T>
void print(T arr[],int len){
    
    for(int i=0;i<len;i++){
        cout<<arr[i]<<endl;
    }
}

void test(){
    char arr[] =  "saskle";
    int m_len = sizeof(arr)/sizeof(char);
    sort(arr,m_len);
    print(arr,m_len);
}

int main(void){
    test();
    system("pause");
    return 0;
}

img

那几行中的逗号应该是全角中文的,改成英文的看看

你没发现你这程序根本运行不起来吗?逻辑什么的都不考虑,起码是要能运行的,一堆语法错误,都不用检查的吗?连“using namespace std;”都没写!!!!