C ++ Ошибка не соответствует для оператора << при попытке отобразить список - PullRequest
0 голосов
/ 19 апреля 2020

Я не знаю, что не так с этим кодом, я новичок в c ++ ie, кто-нибудь может мне помочь исправить это? У меня были проблемы с этим в течение некоторого времени, и я не знаю, как это исправить. Я пытался возиться с кодом, но безуспешно. Кто-нибудь знает, что с этим не так?

#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;
}

Ответы [ 2 ]

1 голос
/ 19 апреля 2020

Ваши функции имеют тип возврата void, оператор << ничего не может с ними сделать, к счастью, у вас уже есть функции для выполнения того, что вы хотите, вы просто должны вызывать их в правильном порядке и порядке:

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;
}
1 голос
/ 19 апреля 2020

Проблема здесь:

 cout<<"elementy tablicy to: "<<show(tablica,11)<<endl;

<<show(tablica,11)

для функции show не возвращает никакого значения (тип возврата void),

Вы можете просто вызвать функцию для выполнения ее печати:

int main()
{
    double tablica[] = { 2, 12, 3, 4, 5, 4, 7, 8, 9, 9, 0 };
    cout << "elementy tablicy to: ";
    show(tablica, 11);
...