Даны натуральные числа 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()
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д