Обозначение указателя и массив

0

(C++). Моя программа должна заставить пользователя вводить числа, которые будут определять размер массива, а также его элементы. Затем мне нужно отсортировать элементы в порядке возрастания. Моя проблема - всякий раз, когда я запускаю свою программу и отображает отсортированные числа; вместо этого он отображает адрес (если я прав).

    #include <iostream>
    using namespace std;


int main()
{

   int size;
   int i,x,tempVar;
   cout << "Enter how many students took the test: ";
   cin >> size;
   int *myArray = new int [size];

for  ( i = 0; i < size; i++)
{
    cout << "Enter a score:  ";
    cin >> myArray[size];
}

for ( i = 0; i < size; i++)
{
    for ( x = 0; x < size; x++)
    {
        if (myArray[i] < myArray[x])
        {
            tempVar = myArray[i];
            myArray[i] = myArray[x];
            myArray[x] = tempVar;
        }
    }
}

cout << "The scores have been sorted out in an ascending order\n";
for (i = 0; i < size; i++)
{
    cout << *(myArray + i) << endl;
}

delete [] myArray;
}
  • 0
    Дайте нам пример того, что печатается и что вы ожидали.
  • 0
    Ваше чтение неверно: cin >> myArray[size]; должно быть cin >> myArray[i];
Показать ещё 2 комментария
Теги:
arrays
pointers
notation

1 ответ

1

Он не показывает адреса; это, вероятно, показывает значения мусора, поскольку у вас есть:

cin >> myArray[size];

вместо

cin >> myArray[i];

Ещё вопросы

Сообщество Overcoder
Наверх
Меню