又不知道哪里出错了,请大家看看

编写一个冒泡排序的成员函数模板以实现降序排序。可用小于比较,冒泡采用从上向下;也可用用大于比较,冒泡才用从下向上;

#include <iostream>
#include <string>
using namespace std;
template <typename T,int s> 
class shuzu{
    private:
        T a[s];
    public:
        void input();
        T maopao();
        void print();
};
template <typename T,int s>void shuzu<T,s>::input(){
    int i;
    for(i=0;i<s;i++)
    cin>>a[i];
}
template <typename T,int s>void shuzu<T,s>::print(){
    int i;
    for(i=0;i<s;i++)
    cout<<a[i]<<'\t';
}
template <typename T,int s>T shuzu<T,s>::maopao(){
    int i,j;
    T t;
    for(i=0;i<s-1;i++)
       for(j=0;j<s-i-1;j++)
          if(a[j]<a[j+1]){
              t=a[j];a[j]=a[j+1];a[j+1]=t;
          }
}
int main(){
    shuzu <int 5>x;
    shuzu <double 6>y;
    x.input();
    x.maopao();
    x.print();
    y.input();
    y.maopao();
    y.print();
    return 0;
}

缺了逗号
shuzu <int, 5> x;
shuzu <double, 6> y;

冒泡排序写法没有错误,其他修改处见注释,供参考:

#include <iostream>
#include <string>
using namespace std;
template <typename T, int s>
class shuzu {
private:
    T a[s];
public:
    void input();
    void maopao();  // T maopao();修改
    void print();
};
template <typename T, int s>void shuzu<T, s>::input() {
    int i;
    for (i = 0; i < s; i++)
        cin >> a[i];
}
template <typename T, int s>void shuzu<T, s>::print() {
    int i;
    for (i = 0; i < s; i++)
        cout << a[i] << '\t';
    cout << endl;                //修改
}
template <typename T, int s>void shuzu<T, s>::maopao() {
//template <typename T,int s>T shuzu<T,s>::maopao() 修改
    int i, j;
    T t;
    for (i = 0; i < s - 1; i++)
        for (j = 0; j < s - i - 1; j++)
            if (a[j] < a[j + 1]) {
                t = a[j]; a[j] = a[j + 1]; a[j + 1] = t;
            }
}
int main() {
    shuzu <int, 5>x{};  //shuzu <int 5>x;
    shuzu <double, 6>y{}; //shuzu <double 6>y;
    x.input();
    x.maopao();
    x.print();
    y.input();
    y.maopao();
    y.print();
    return 0;
}

你还是先好好温习一下冒泡排序,再来写代码吧
你这循环条件都错了呀
没有能够遍历整个数组