c++算法问题还是什么?

#include<iostream>
#include<cstdio>
using namespace std;
template <typename T>
void sort(T x,T y,T z)
{int t;
if(x>y){t=x,x=y,y=t;}
if(x>z){t=x,x=z,z=t;}
if(y>z){t=y,y=z,z=t;}
cout<<x<<"\t"<<y<<"\t"<<z<<endl;
}
int main(){
int a,b,c;
char str[3];
double l,m,n;
cin>>a>>b>>c;
cin>>str;
cin>>l>>m>>n;
sort(a,b,c);
sort(str[0],str[1],str[2]);
sort(l,m,n);
return 0;
}
这个程序有问题,但不知道问题在哪。。。
原题:
用函数模板template <typename T> void sort(T x,T y,T z)实现3个数值按最小值到最大值排序输出的程序。

第1行输入int型3个数值,用空格分隔。
第2行输入char型3个数值,连续输入,不用空格分隔。
第3行输入double型3个数值,用空格分隔。

互换的青春
浏览 583回答 2
2回答

梵蒂冈之花

你的程序 两个地方有问题min=1000000; 但是最大差值有 1000000000 -1a[id] = 0 如果后面选中的数 是 1 呢 这个的差距不是为1么,其他的差距如果都要比这个大呢,那这个人又会被输出一遍,因为你循环的时候没有判断。还有这个算法效率不怎么高希望对你能有所帮助。
打开App,查看更多内容
随时随地看视频慕课网APP