首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

初学C++,一个有关问题,了

2012-02-15 
初学C++,一个问题,请教大家了啊#include iostreamusingnamespacestdtemplate typenameTvoidswap(T&a,

初学C++,一个问题,请教大家了啊
#include <iostream>
using   namespace   std;
template <typename   T>
void   swap(T   &a,T   &b){
int   temp;
temp=a;
a=b;
b=temp;
}
template <typename   Y>
void   change(Y   a[],Y   n)
{int   i,j;
  for(j=0;j <n;j++)  
for   (i=0;i <n-j-1;i++)  
if(a[i]> a[i+1])
swap(a[i],a[i+1]);

}
int   main(){
int   n,i;
cout < < "How   mang   numbers   do   you   want   to   input   : ";
        cin> > n;
cout < < "which   kind   of   numbers   do   you   want   to   input   : " < <endl;
cout < < "1.int   " < < "2.float   " < < "3.double   float " < <endl;
int   m;
cin> > m;
if(m==1){int   a[100];
for(i=0;i <n;i++)
  cin> > a[i];
cout < <endl;}
else   if(m==2){float   a[100];
for(i=0;i <n;i++)
  cin> > a[i];
cout < <endl;}
else   if(m==3){double   a[100];
for(i=0;i <n;i++)
  cin> > a[i];
cout < <endl;}
change(a,n);//如果从这里用/*一直到cout < <a[k] < < "   ";注释掉确没有错误。
int   k;
for(k=0;k <n;k++)
cout < <a[k] < < "   ";

return   0;
}
这样会出错,好像和数组a有关,可是不懂怎么修改。麻烦大家看看,怎么修改了。

[解决办法]
lz的程序基础问题还不少.
1.main()函数中a数组的定义范围是if{},出了这个范围,肯怕只有它自己才认识自己啦。
2.既然声明了模板变量Y,template <typename Y> 又为何用int型的变量j与之比较,难道在程序运行的开始你就能确认Y是整型的变量??(当然,这是你自己编的程序固然没有错,如果是别人的程序你能提前做出判断?)

热点排行