#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int i, j;
const int n=5;
float a[n],t,k, l;
for (i=0;i<n;i++)
cin>>a[i];
k=a[i]*a[i];
for (j=n;j>0;j--)
for (i=0;i<n-1;i++)
if (a[i]>a[+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for(i=0;i<n;i++)
cout<<"k="<<k<<" ";
system ("pause");
return 0;
}
Здесь так много ошибок, что даже если правильно написать сортировку, программа всё равно не заработает.
Начнём с того, что массивы в C/C++ имеют индексы от 0 до N-1, где N - размер массива. Этот факт использован правильно только при считывании массива, так как, по всей видимости, это кусочек был переписан откуда-то. В циклах же, которые должны отсортировать массив, про это вообще забыто, в результате чего мы в некоторых случаях вылазим за границы массива. Внимательно прокрути в голове, как будут выполняться циклы и поправь.
Далее, непонятно выражение k=a*a. Мало того, что оно стоит НЕ внутри цикла, так что не может претендовать на оператор, вычисляющий квадрат ДЛЯ КАЖДОГО элемента массива. Так ко всему прочему нужно заметить, что i после выполнения цикла будет равен n, а обращение по n-ому индексу - это опять-таки вылезание за границы.
Вывод массива вообще удивителен. В цикле выводится одно и то же значение k, которое было вычисленно из мусорного значения за границей массива. Сами же элементы массива не выводятся. Видимо поэтому ты думаешь, что сортировка вообще неверная, хотя она неверная лишь на границах массива.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Хорошее решение, ещё и на 11 стандарте, однако сомневаюсь, что оно будет ценно для человека, который даже 2 + 2 написать не может ещё. Осваивать STL нужно тогда, когда уже сформировалось понимание того, как всё работает. Для топикстартера данный код настолько же бесполезен, как Бентли для неандертальца - он в нём ничего не поймёт. Да и нужда в решении этой задачи уже давно отпала, судя по времени сообщения.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Romeo писал(а): В циклах же, которые должны отсортировать массив, про это вообще забыто, в результате чего мы в некоторых случаях вылазим за границы массива. Внимательно прокрути в голове, как будут выполняться циклы и поправь.
i меняется от 0 до n-2, i+1 - от 1 до n-1.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.