Даны натуральные числа N и массив A(N). Продублировать все вхождения положительных элементов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем доброе утро! Помогите, пожалуйста, найти ошибки в работе. Сам я пока не опытный в этом деле, нужно чтобы программа просто продублировала все положительные элементы. А я тут что-то накосячил
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3. int PrMs (int*x, int N){
  4. int i;
  5. printf("Полученный массив\n");
  6. for (i=0; i<N; i++)
  7. printf("%d",*(x+i));
  8. }
  9. int VvodMs (int *x){
  10. int N;
  11. do{
  12. printf("Введите количество элементов N<30\n");
  13. scanf("%d", &N);
  14. }while (N<=0 || N>30);
  15. printf("Введите элементы чисел\n");
  16. int i,j;
  17. for (i=0; i<N; i++)
  18. scanf("%d",(x+N));
  19. return N;
  20. }
  21. void ChMs (int *x, int N)
  22. {int i, j;
  23. N=0;
  24. while (i<N)
  25. {
  26. if (x+N>0)
  27. {
  28. N++;
  29. for (j=N-1; j>i; j--)
  30. *(x+j)=*(x+j-1);
  31. i++;
  32. }
  33. i++
  34. }
  35. return N;
  36. }
  37. int main()
  38. {
  39. int N, A[30]
  40. N=VvodMs (A);
  41. PrMs (A,N);
  42. ChMs (A,N);
  43. PrMs (A,N);
  44. }

Решение задачи: «Даны натуральные числа N и массив A(N). Продублировать все вхождения положительных элементов»

textual
Листинг программы
  1. using namespace std;
  2. int PrMs(int* x, int N){
  3. int i;
  4. printf("Poluchennyi massiv:\n");
  5. for(i = 0; i < N; i++)
  6.   printf("%d\n", x[i]);
  7. }
  8.  
  9. int VvodMs(int *x){
  10. int N;
  11. do{
  12. printf("Vvedite kolichestvo elementov N<30\n");
  13. scanf("%d", &N);
  14. }while(N <= 0 || N > 30);
  15.  
  16. printf("Vvedite elementi chisel:\n");
  17. int i,j;
  18. for(i = 0; i < N; i++)
  19.   scanf("%d", (x+i));
  20. return N;
  21. }
  22.  
  23. void ChMs(int *x, int N)
  24. {
  25. int i, j;
  26. i=0;
  27. while(i<N)
  28. {
  29.    if(*(x+i)>0)
  30.    {
  31.        for(j=N-1; j>i; j--)
  32.          *(x+j)=*(x+j-1);
  33.    }
  34.    i++;
  35. }
  36. //return N;
  37. }
  38.  
  39. int main(int argc, char* argv[])
  40. {
  41. int z, n;
  42. /*char str[5] = {5, 6, 3, 7, 2};
  43. cout << "Input number:\n";
  44. cin >> z;
  45. for(n = 0; n <= z; n++)
  46. {
  47. cout << n << "\n";
  48. }*/
  49. /*for(z = 0; z < 5; z++)
  50.   printf("%d ", str[z]);*/
  51. //main
  52. int N, A[30];
  53. N=VvodMs(A);
  54. PrMs(A,N);
  55. ChMs(A,N);
  56. PrMs(A,N);
  57.  
  58. getch();
  59. return 0;
  60. }

Объяснение кода листинга программы

  1. Ввод количества элементов массива и самого массива с помощью функции VvodMs().
  2. Вывод исходного массива с помощью функции PrMs().
  3. Дублирование положительных элементов массива с помощью функции ChMs().
  4. Вывод измененного массива с помощью функции PrMs().

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы