Даны натуральные числа N и массив A(N). Продублировать все вхождения положительных элементов - C (СИ)
Формулировка задачи:
Всем доброе утро! Помогите, пожалуйста, найти ошибки в работе. Сам я пока не опытный в этом деле, нужно чтобы программа просто продублировала все положительные элементы. А я тут что-то накосячил
#include <stdio.h>
#include <math.h>
int PrMs (int*x, int N){
int i;
printf("Полученный массив\n");
for (i=0; i<N; i++)
printf("%d",*(x+i));
}
int VvodMs (int *x){
int N;
do{
printf("Введите количество элементов N<30\n");
scanf("%d", &N);
}while (N<=0 || N>30);
printf("Введите элементы чисел\n");
int i,j;
for (i=0; i<N; i++)
scanf("%d",(x+N));
return N;
}
void ChMs (int *x, int N)
{int i, j;
N=0;
while (i<N)
{
if (x+N>0)
{
N++;
for (j=N-1; j>i; j--)
*(x+j)=*(x+j-1);
i++;
}
i++
}
return N;
}
int main()
{
int N, A[30]
N=VvodMs (A);
PrMs (A,N);
ChMs (A,N);
PrMs (A,N);
}Решение задачи: «Даны натуральные числа N и массив A(N). Продублировать все вхождения положительных элементов»
textual
Листинг программы
using namespace std;
int PrMs(int* x, int N){
int i;
printf("Poluchennyi massiv:\n");
for(i = 0; i < N; i++)
printf("%d\n", x[i]);
}
int VvodMs(int *x){
int N;
do{
printf("Vvedite kolichestvo elementov N<30\n");
scanf("%d", &N);
}while(N <= 0 || N > 30);
printf("Vvedite elementi chisel:\n");
int i,j;
for(i = 0; i < N; i++)
scanf("%d", (x+i));
return N;
}
void ChMs(int *x, int N)
{
int i, j;
i=0;
while(i<N)
{
if(*(x+i)>0)
{
for(j=N-1; j>i; j--)
*(x+j)=*(x+j-1);
}
i++;
}
//return N;
}
int main(int argc, char* argv[])
{
int z, n;
/*char str[5] = {5, 6, 3, 7, 2};
cout << "Input number:\n";
cin >> z;
for(n = 0; n <= z; n++)
{
cout << n << "\n";
}*/
/*for(z = 0; z < 5; z++)
printf("%d ", str[z]);*/
//main
int N, A[30];
N=VvodMs(A);
PrMs(A,N);
ChMs(A,N);
PrMs(A,N);
getch();
return 0;
}
Объяснение кода листинга программы
- Ввод количества элементов массива и самого массива с помощью функции
VvodMs(). - Вывод исходного массива с помощью функции
PrMs(). - Дублирование положительных элементов массива с помощью функции
ChMs(). - Вывод измененного массива с помощью функции
PrMs().