注册 登录
编程论坛 C++教室

怎么报错了?

zhao9302 发布于 2007-10-17 21:55, 415 次点击

#include<iostream>
using namespace std;

template <typename T>

void sort(T a)
{
for(int i=0;i<5;i++)
for(int j=0;j<5-i;j++)
{ T temp;
if(a[j]<a[j+1])
{temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
cout<<"sort number:"<<endl;
for(i=0;i<5;i++)
cout<<a[i]<<'\t';


}

int main()
{
int a[]={5,2,7,1,8};
float b[]={2.1,4.3,2.4,6.8,2.0};
long c[]={122323,21212,4542,-12342,-42};

sort(a);
sort(b);
sort(c);

return 0;
}

5 回复
#2
zhao93022007-10-17 22:11

我把程序改了下
#include<iostream>
using namespace std;

template <typename T>

void sort(T a[])
{
for(int i=0;i<5;i++)
for(int j=0;j<5-i;j++)
{ T temp;
if(a[j]<a[j+1])
{temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
cout<<"sort number:"<<endl;
for(i=0;i<5;i++)
cout<<a[i]<<'\t';


}

int main()
{
int a[]={5,2,7,1,8};
float b[]={2.1,4.3,2.4,6.8,2.0};
long c[]={122323,21212,4542,-12342,-42};

sort(a);
sort(b);
sort(c);

return 0;
}

现在不报错了 但是运行出问题 我的编译器是VC++6.0

#3
aipb20072007-10-17 22:38
越界了

for(int i=0;i<5;i++)
for(int j=0;j<5-i;j++) //j < 4-i 因为你下面访问的是a[j]&a[j+1]
#4
zhao93022007-10-17 23:01

#include<iostream>
#include<string>
using namespace std;

class resever
{private:
string str1;
int n;
int i;
char temp;

public:
void SetString()
{
cout<<"请输入您要转换的字符串:";
cin>>str1;
}
resever()
{
n=str1.size();
for(i=0;i<n/2;i++)
{
temp=str1[i];
str1[i]=str1[n-i-1];
str1[n-i-1]=temp;

return str1;
}

}
void print()
{
cout<<"转换后的字符串是:"<<str1<<endl;
}
};

int main()
{ resever str;
str.SetString();
// str.resever();
str.print();
return 0;
}


那这个程序 好像 resever 没有执行一样??

#5
zmzlx2007-10-18 09:19

#include<iostream>
using namespace std;

template <typename T>

void sort(T a[])
{
for(int i=0;i<5;i++)
for(int j=0;j<5-i;j++)
{ T temp;
if(a[j]>a[j+1])
{temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
cout<<"sort number:"<<endl;
for(i=0;i<5;i++)
cout<<a[i]<<'\t';


}

int main()
{
int a[]={5,2,7,1,8};
double b[]={2.1,4.3,2.4,6.8,2.0};
unsigned int c[]={122,2121,3542,2342,42};

sort(a);
sort(b);
sort(c);

return 0;
}
运行为什么出问题啊?

#6
zhao93022007-10-18 15:41

我也不知道啊
哪位高人指点下

1