Вывести в функции main() на экран массив, отсортированный в другой функции - C (СИ)
Формулировка задачи:
Есть две функции main() и FG(float ARR[],int i).Как вывести в функции main() на экран массив отсортированный в функции FG(float ARR[],int i).
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
float FG(float ARR[],int i);
void main()
{clrscr();
float ARR[10];
int i;
randomize();
for(i=0;i<10;i++){ARR[i]=random(20);printf("%2.1f\t",ARR[i]);}
}
float FG(float ARR[],int i)
{
int j;
float a;
for(i=0;i<10;i++)
{
for(j=0;j<10-1-i;j++)
{
if(ARR[j]<ARR[j+1]){a=ARR[j];ARR[j]=ARR[j+1];ARR[j+1]=a;}
}
}
getch();
return 0;
}
Сделал так но не работает
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
float FG(float ARR[],int i);
void main()
{clrscr();
float ARR[10];
int i;
randomize();
for(i=0;i<10;i++){ARR[i]=random(20);printf("%2.1f\t",ARR[i]);}
for(i=0;i<10;i++){printf("%i=%f\t",i,ARR[i]);}
}
float FG(float ARR[],int i)
{
int j;
float a;
for(i=0;i<10;i++)
{
for(j=0;j<10-1-i;j++)
{
if(ARR[j]<ARR[j+1]){a=ARR[j];ARR[j]=ARR[j+1];ARR[j+1]=a;}
}
}
getch();
return ARR[i];
}Решение задачи: «Вывести в функции main() на экран массив, отсортированный в другой функции»
textual
Листинг программы
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
void Sort(double * array, int n);
void ShowArray(double * array, int n);
void RandomInput(double * array, int n);
int main()
{
double * array;
int n;
cin >> n;
array = new double[n];
RandomInput(array,n);
cout << "Массив до сортировки : \n";
ShowArray(array,n);
Sort(array,n);
cout << "Массив после сортировки :\n";
ShowArray(array,n);
delete[] array;
// добавьте getch() и conio.h если работает в MVS++ / Builder'е
return 0;
}
void Sort(double * array, int n)
{
double temp;
for(int j=0; j<n; j++)
for(int i=0; i<n-1; i++)
if(array[i] < array[i+1])
{
temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
void RandomInput(double * array, int n)
{
srand(time(NULL));
for(int i=0; i<n; i++)
array[i] = rand()%50-10;
}
void ShowArray(double * array, int n)
{
for(int i=0; i<n; i++)
cout << array[i] << " ";
cout << endl;
}
Объяснение кода листинга программы
- Объявление функций:
Sort(double * array, int n)ShowArray(double * array, int n)RandomInput(double * array, int n)
- Создание массива и получение его размера в функции
main(). - Инициализация массива случайными числами в диапазоне от -10 до 40 с шагом 10 в функции
RandomInput(). - Вывод массива на экран до сортировки в функции
ShowArray(). - Сортировка массива методом пузырька в функции
Sort(). - Вывод массива на экран после сортировки в функции
ShowArray(). - Удаление выделенной памяти в функции
main(). - Возврат значения 0 в функции
main(), что означает успешный конец работы программы. - В функции
Sort()используется временная переменнаяtempдля обмена значениями. - В цикле сортировки элементы сравниваются попарно, начиная с начала массива до предпоследнего элемента.
- Если текущий элемент больше следующего, то они меняются местами с помощью временной переменной
temp. - В функции
RandomInput()используется функцияrand()для генерации случайных чисел. - Генерация случайных чисел начинается с текущего времени, чтобы получить различный результат при каждом запуске программы.
- В цикле для каждого элемента массива генерируется случайное число и присваивается соответствующему элементу массива.
- В функции
ShowArray()используется цикл для вывода всех элементов массива на экран, разделяя их пробелами. - В функции
main()используется функцияSort()для сортировки массива и функцияShowArray()для вывода отсортированного массива. - Функция
main()получает ввод от пользователя о размере массива и использует функциюnewдля выделения памяти под массив. - Функция
main()вызывает функциюRandomInput()для инициализации массива случайными числами. - Функция
main()вызывает функциюShowArray()для вывода массива до сортировки. - Функция
main()вызывает функциюSort()для сортировки массива. - Функция
main()вызывает функциюShowArray()для вывода отсортированного массива. - Функция
main()освобождает выделенную память с помощью функцииdelete[].