Ошибка при сортировке символьного массива, используя указатели - C (СИ)

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

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

Вылетает прога, в чем ошибка . Должна быть сортировка символьного массива, даже не могу ввести элементы...
#include <stdio.h>
#include <stdlib.h>

*/int main ()
{ setlocale (LC_ALL,"russian");
int N;
char *ptr;
int i,tmp;
puts ("Введите количество элементов  N");
scanf ("%d",&N);
*ptr = (char*)malloc (sizeof(char) * N);
 
    puts ("Введите элементы ");
        for (i=0;i<N;i++)
         scanf("%c",ptr++);
 if (ptr==NULL)
    {
        printf ("OFF");
    }

for (i=0;i<N;i++)
        printf ("%c",ptr++);
 
   return 0;

Решение задачи: «Ошибка при сортировке символьного массива, используя указатели»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#define SWEEP while(getchar()!='\n')
int main(void)
{
    setlocale (LC_ALL,"Ru");
    int N;
    char *ptr, *p;
    puts ("Введите количество элементов  N");
    scanf ("%d",&N);
    p=ptr = (char*)malloc (sizeof(char) * N);
    puts ("Введите элементы "); SWEEP;
        for (int i=0;i<N;i++)
         {scanf("%c",p); SWEEP; ++p;}
    p=ptr;
    for (int i=0;i<N;i++)
        {printf ("%c",*p);++p;}
    p=ptr;
    int j, tmp,i;
    for( i=0; i<N-1; ++i)
    {
        for(j=i+1; j<N; ++j)
        {
            if(p[i]>p[j])
            {
                tmp=p[i];
                p[i]=p[j];
                p[j]=tmp;
            }
        }
    }
    puts("");
    for (int i=0;i<N;i++)
        {printf ("%c",*p);++p;}
   return 0;
}

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

  1. Включаются необходимые заголовочные файлы
  2. Устанавливается русская локаль
  3. Определяется переменная N типа int для хранения количества элементов
  4. Определяются две указательные переменные ptr и p, которые будут использоваться для работы с массивом
  5. Выводится сообщение с просьбой ввести количество элементов и сохраняется в переменной N
  6. Вводится массив символов с помощью scanf, используется SWEEP для считывания всех символов до новой строки
  7. Выводится сообщение Введите элементы
  8. В цикле от 0 до N-1 происходит сортировка массива по возрастанию с помощью алгоритма пузырька
  9. Выводится отсортированный массив с помощью printf
  10. Возвращается 0, чтобы указать, что программа успешно завершилась

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


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

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

14   голосов , оценка 4.071 из 5
Похожие ответы