Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:lab2_3_4 / Удал_нули_пол_конец_функ
.c//Дан массив типа double. Удалить из массива нулевые элементы,
//затем положительные элементы перенести в конец массива, сохраняя исходный порядок.
//Исходный массив инициализируем константами в операторе описания.
#include<stdio.h>
#include<math.h>
#include<conio.h> /*Модуль функций расширения ввода-вывода(в Паскале аналогичный модуль CRT)*/
#include<windows.h>
void print_array(double *x,int n,char *msg);//Вывод строки заголовка msg и элементов массива х размером n
void wait_press_key(char *msg);//Вывод строки msg и ожидание нажатия клавиши для продолжения программы.
void Del_Nil_array(double *x,int *n);//Удаление из массива нулевых элементов.
void plus_end_direct_array(double *x,int n);//Положительные элементы перемещаются в конец массива с сохранением исходного порядка
int main()
{
int i,j,n,fl,col,iminus;
double x[]={5,0,0,-4,3,2,0,4,8.4, 13.6, -34.5,16.3,-34.9, 18.25,0,12, -56.14,13, 18, 34, -102,66,-38,-71,23,0.4,15},buf;
//Подключение кирилицы в консольном окне
SetConsoleOutputCP(1251);//Использует для вывода кодовую таблицу 1251
SetConsoleCP(1251); //Использует для ввода кодовую таблицу 1251
printf("\t Введите размер массива <=20\n");
scanf("%d",&n);
print_array(x,n,"Исходный массив х");
//Удаляем нули
Del_Nil_array(x,&n);
print_array(x,n,"Массив х после удаления нулей");
//Переставляем положительные элементы в конец массива
plus_end_direct_array(x,n);
print_array(x,n,"Результирующий массив х");
wait_press_key("\nДля завершения программы нажмите любую клавишу\n");
return 0;
}
void print_array(double *x,int n,char *msg)
{ int i;
printf("\n%s размером %d\n",msg,n);
for(i=0; i<n;i++)
printf("%8.2lf",x[i]);
}
void wait_press_key(char *msg)
{
printf(msg);
getch();
}
void Del_Nil_array(double *x,int *n)
{ int i,j;
for(i=*n-1;i>=0;i--)
if(x[i]==0)
{for(j=i;j<*n-1;j++)
x[j]=x[j+1];
(*n)--;
}
}
void plus_end_direct_array(double *x,int n)
{
int i,j,p;double buf;
p=n-1;
for(i=n-1;i>=0;i--)
if(x[i]>0)
{
buf=x[i];
for(j=i;j<p;j++)
x[j]=x[j+1];
x[p]=buf;
p--;
}
}
Соседние файлы в папке lab2_3_4