读书人

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

发布时间: 2012-02-15 12:09:44 作者: rapoo

初学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是整型的变量??(当然,这是你自己编的程序固然没有错,如果是别人的程序你能提前做出判断?)

读书人网 >C++

热点推荐