c++问题,急求解决!!!

#include"stdafx.h"#include<iostream>usingnamespacestd;template<typenameT>voidchange(T... #include "stdafx.h"
#include <iostream>
using namespace std;
template<typename T>
void change(T &a,T &b,T &t)//可以这样写
{t=a;a=b;b=t;}
void px(int &a,int &b,int &c)
{ int t=0;
// void change(T &a,T &b,T &t);//注意模板建立后不用声明就可以使用

if(a>b)
change(a,b,t);
else if(a>c)
change(a,c,t);
else if(b>c)
change(b,c,t);
}
void px(float &a,float &b,float &c)
{float t=0;

if(a>b)
change(a,b,t);
else if(a>c)
change(a,c,t);
else if(b>c)
change(b,c,t);
}
void px(double &a,double &b,double &c)
{ double t=0;

if(a>b)
change(a,b,t);
else if(a>c)
change(a,c,t);
else if(b>c)
change(b,c,t);
}
int main(int argc, char* argv[])
{
int a,b,c,n;
float d,e,f;
double g,h,i;
void px(int &a,int &b,int &c);
void px(float &a,float &b,float &c);
void px(double &a,double &b,double &c);
cout<<"要排序的数据类型是:"<<endl<<"[1]整形"<<endl<<"[2]单精度型"<<"[3]双精度型"<<endl;
cin>>n;
cout<<"要排序的三个数:"<<endl;
if(n==1)
{cin>>a>>b>>c;
px(a,b,c);
cout<<a<<b<<c;}
else if(n==2)
{cin>>d>>e>>f;
px(d,e,f);
cout<<d<<e<<f;}
else if(n==3)
{cin>>g>>h>>i;
px(g,h,i);
cout<<g<<h<<i;}
return 0;
}
---Configuration: 用重载函数对n个数排序 - Win32 Debug--------------------
Compiling...
用重载函数对n个数排序.cpp
d:\visual c++\vc98\include\ostream(119) : fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'E:\8168\vc98\p2\src\P2\main.c', line 494)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
执行 cl.exe 时出错.
而且在用DEVc++时不能出结果,系统闪一下就过,求解决!!谢谢各位了!!
展开
 我来答
inu1255
2013-10-04 · TA获得超过105个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:117万
展开全部

关了,重启编译器,

如果不行就换一个编译器,或者重装一下

我测试可以运行

cjie0201
2013-10-04
知道答主
回答量:27
采纳率:100%
帮助的人:15.5万
展开全部
//#include "stdafx.h"
#include <iostream>
using namespace std;
template<typename T>
void change(T &a,T &b,T &t)//可以这样写
{t=a;a=b;b=t;}
void px(int &a,int &b,int &c)
{ int t=0;
// void change(T &a,T &b,T &t);//注意模板建立后不用声明就可以使用

if(a>b)
change(a,b,t);
else if(a>c)
change(a,c,t);
else if(b>c)
change(b,c,t);//搜索
}
void px(float &a,float &b,float &c)
{float t=0;

if(a>b)
change(a,b,t);
else if(a>c)
change(a,c,t);
else if(b>c)
change(b,c,t);
}
void px(double &a,double &b,double &c)
{ double t=0;

if(a>b)
change(a,b,t);
else if(a>c)
change(a,c,t);
else if(b>c)
change(b,c,t);
}
int main(int argc, char* argv[])
{
int a,b,c,n;
float d,e,f;
double g,h,i;
void px(int &a,int &b,int &c);
void px(float &a,float &b,float &c);
void px(double &a,double &b,double &c);
cout<<"要排序的数据类型是:"<<endl<<"[1]整形"<<endl<<"[2]单精度型"<<"[3]双精度型"<<endl;
cin>>n;
cout<<"要排序的三个数:"<<endl;
if(n==1)
{cin>>a>>b>>c;
px(a,b,c);
cout<<a<<b<<c;}
else if(n==2)
{cin>>d>>e>>f;
px(d,e,f);
cout<<d<<e<<f;}
else if(n==3)
{cin>>g>>h>>i;
px(g,h,i);
cout<<g<<h<<i;}
cout << endl;
system("Pause");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞扬天遥
2013-10-04 · TA获得超过266个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:194万
展开全部

我实验了一下,首先你的函数声明缺少change函数,我是个函数声明在main外,实现在另一个CPP文件中。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式