尝试显示列表时,C++ 错误与运算符 << 不匹配
C++ Error no match for operator << when trying to display a list
我不知道这段代码有什么问题,我是一个c++新手,有人可以帮我解决吗?一段时间以来我一直遇到这个问题,我不知道如何解决。我试过弄乱代码,但没有成功。有人知道这有什么问题吗?
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <list>
using namespace std;
void rising(double T[], int n)
{
double pom;
for (int j=n-1;j>0;j--)
for (int i=0;i<j;i++)
if (T[i]>T[i+1])
{
pom=T[i];
T[i]=T[i+1];
T[i+1]=pom;
}
}
void lowering(double T[], int n)
{
double pom;
for (int j=n-1;j>0;j--)
for (int i=0;i<j;i++)
if (T[i]<T[i+1])
{
pom=T[i];
T[i]=T[i+1];
T[i+1]=pom;
}
}
void show(double T[], int n)
{
for(int i=0; i<n; i++)
cout<<T[i]<<setw(3);
cout<<endl;
}
int main()
{
double tablica[]={2, 12, 3, 4, 5, 4, 7, 8, 9, 9, 0};
cout<<"elementy tablicy to: "<<show(tablica,11)<<endl;
cout<<"elementy tablicy posortowane rosnaco: "<<rising(tablica,11)<<endl;
cout<<"elementy tablicy posortowane malejaco: "<<lowering(tablica,11)<<endl;
cin.get();
cin.ignore();
return 0;
}
问题出在这里:
cout<<"elementy tablicy to: "<<show(tablica,11)<<endl;
<<show(tablica,11)
函数显示没有return任何值(它的return类型是void),
您可以简单地调用该函数来执行其打印:
int main()
{
double tablica[] = { 2, 12, 3, 4, 5, 4, 7, 8, 9, 9, 0 };
cout << "elementy tablicy to: ";
show(tablica, 11);
你的函数有 void return 类型,<<
运算符无法用它们做任何事情,幸运的是你已经有了函数可以做你想做的事,你只需要在正确的时尚和顺序:
int main()
{
double tablica[]={2, 12, 3, 4, 5, 4, 7, 8, 9, 9, 0};
cout<<"elementy tablicy to: ";
show(tablica,11);
rising(tablica,11);
cout<<"elementy tablicy posortowane rosnaco: ";
show(tablica,11);
lowering(tablica,11);
cout<<"elementy tablicy posortowane malejaco: ";
show(tablica,11);
cin.get();
return 0;
}
我不知道这段代码有什么问题,我是一个c++新手,有人可以帮我解决吗?一段时间以来我一直遇到这个问题,我不知道如何解决。我试过弄乱代码,但没有成功。有人知道这有什么问题吗?
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <list>
using namespace std;
void rising(double T[], int n)
{
double pom;
for (int j=n-1;j>0;j--)
for (int i=0;i<j;i++)
if (T[i]>T[i+1])
{
pom=T[i];
T[i]=T[i+1];
T[i+1]=pom;
}
}
void lowering(double T[], int n)
{
double pom;
for (int j=n-1;j>0;j--)
for (int i=0;i<j;i++)
if (T[i]<T[i+1])
{
pom=T[i];
T[i]=T[i+1];
T[i+1]=pom;
}
}
void show(double T[], int n)
{
for(int i=0; i<n; i++)
cout<<T[i]<<setw(3);
cout<<endl;
}
int main()
{
double tablica[]={2, 12, 3, 4, 5, 4, 7, 8, 9, 9, 0};
cout<<"elementy tablicy to: "<<show(tablica,11)<<endl;
cout<<"elementy tablicy posortowane rosnaco: "<<rising(tablica,11)<<endl;
cout<<"elementy tablicy posortowane malejaco: "<<lowering(tablica,11)<<endl;
cin.get();
cin.ignore();
return 0;
}
问题出在这里:
cout<<"elementy tablicy to: "<<show(tablica,11)<<endl;
<<show(tablica,11)
函数显示没有return任何值(它的return类型是void),
您可以简单地调用该函数来执行其打印:
int main()
{
double tablica[] = { 2, 12, 3, 4, 5, 4, 7, 8, 9, 9, 0 };
cout << "elementy tablicy to: ";
show(tablica, 11);
你的函数有 void return 类型,<<
运算符无法用它们做任何事情,幸运的是你已经有了函数可以做你想做的事,你只需要在正确的时尚和顺序:
int main()
{
double tablica[]={2, 12, 3, 4, 5, 4, 7, 8, 9, 9, 0};
cout<<"elementy tablicy to: ";
show(tablica,11);
rising(tablica,11);
cout<<"elementy tablicy posortowane rosnaco: ";
show(tablica,11);
lowering(tablica,11);
cout<<"elementy tablicy posortowane malejaco: ";
show(tablica,11);
cin.get();
return 0;
}