Вывести массив на экран - C (СИ) (74370)
Формулировка задачи:
Здравствуйте недавно написал программу сортировку, но никак не могу вывести массив на экран, обычный принтф не работает, мне советовали добавить функцию и вывести через неё, но всё равно ничего не получилось. Если кому несложно, то не могли бы пожалуйста помочь?
#include <stdio.h>
#include <stdlib.h>
void swap(int *a, int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
int main()
{
int i,j,n=10,*A;
A=malloc(sizeof(int)*n);
for (i=0; i<n; i++){
A[i]=rand()%n;
}
}
void quicksort(int *A, int l, int r)
{
int n=10;
int i, j;
i=l;
j=r;
int x=A[(i+j)/2];
printf("%d",n);
do {
while (A[i]<x)
i++;
while (A[j]<x)
i--;
if (i<=j){
if (i<j)
swap(&A[i],&A[j]);
i++;
j--;
printf("%d",A[j]);
}
}
while (i<=j);
if (i<j)
quicksort(A,i,j);
if (i<j)
quicksort(A,i,j);
for (i=0; i<n;i++){
printf("%d",A[i]);
}
}Решение задачи: «Вывести массив на экран»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
void swap(int *a, int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
void sort(int A[])
{
int i,j,n=10;
for (j=0;j<n;j++)
{
for (i=0;i<n;i++)
{
if(A[i]>A[i+1])
swap(&A[i],&A[i+1]);
}
}
for (i=0;i<n;i++)
{
printf("%d\n",A[i]);
}
}
main()
{
int i,j,n=10;
int A[10];
for (i=0; i<n; i++)
{
A[i]=rand()%n;
printf("%d\n",A[i]);
}
printf("\n\nSorted\n\n");
sort(A);
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем функцию swap, которая меняет местами два значения, передаваемых по ссылке
- Определяем функцию sort, которая сортирует массив
- В функции main создаем массив A типа int и инициализируем его случайными значениями от 0 до 9
- Выводим массив на экран
- Вызываем функцию sort, передавая в нее массив A
- В функции sort сортируем массив методом пузырька
- Выводим отсортированный массив на экран