Ошибка при сортировке символьного массива, используя указатели - 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; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Устанавливается русская локаль
- Определяется переменная N типа int для хранения количества элементов
- Определяются две указательные переменные ptr и p, которые будут использоваться для работы с массивом
- Выводится сообщение с просьбой ввести количество элементов и сохраняется в переменной N
- Вводится массив символов с помощью scanf, используется SWEEP для считывания всех символов до новой строки
- Выводится сообщение
Введите элементы
- В цикле от 0 до N-1 происходит сортировка массива по возрастанию с помощью алгоритма пузырька
- Выводится отсортированный массив с помощью printf
- Возвращается 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д