Где скачать компилятор для С, а не C++? - C (СИ)
Формулировка задачи:
Я понимаю, что в разделе С++ есть тема, где изложен список бесплатных IDE для С/С++ программы.
Эти два языка очень схожы, но на моем VS2012, VS 2013 ULTIMATE, CODEBLOCKS компилятор не компилирует даже простейшие проги написанные на С, а проги С++ все компилируются.
Вопрос, кто знает где я могу скачать компилятор для С, а не С++?
с уважением,
Человек, который уже целую неделю не может С компилятор скачать.
Новичок Программист.
Решение задачи: «Где скачать компилятор для С, а не C++?»
textual
Листинг программы
- #include <stdio.h>
- #include <string. h>
- #define MAXLINES 5000 /* максимальное число строк */
- char *lineptr[MAXLINES]; /* указатели на строки */
- int readlines(char *lineptr[], int nlines);
- void wntelines(char *lineptr[], int nlines);
- void qsort(char *lineptr[], int left, int right);
- /* сортировка строк */
- int main()
- {
- int nlines; /* количество прочитанных строк */
- if ((nlines = readlinesdineptr, MAXLINES)) >= 0) {
- qsort(lineptr, 0, nlines - 1);
- writelines(lineptr, nlines);
- return 0;
- }
- else {
- printf("ошибка: слишком много строк\п");
- return 1;
- }
- }
- #define MAXLEN 1000 /* максимальная длина строки */
- int getline(char *, int);
- char *alloc(int);
- /* readlines: чтение строк */
- int readlines(char *lineptr[], int maxlines)
- {
- int len, nlines;
- char *p, line[MAXLEN];
- nlines = 0;
- while ((len = getline(line, MAXLEN)) > 0)
- if (nlines >= maxlines I !(p = alloc(len)) == NULL)
- return -1;
- else {
- line[len - 1] = '\0'; /* убираем символ \n */
- strcpy(p, line);
- lineptr[nlines++] = p;
- }
- return nlines;
- /* writelines: печать строк */
- void writelines(char *lineptr[], int nlines)
- {
- int i;
- for (i = 0; i < nlines; i++)
- printf("%s\n", lineptr[i]);
- }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы: stdio.h и string.h
- Определяются две константы: MAXLINES и MAXLEN, которые задают максимальное количество строк и максимальную длину строки соответственно.
- Создаются две функции: readlines и wntelines. Функция readlines отвечает за чтение строк из файла или стандартного ввода, а функция wntelines - за вывод строк на экран.
- В функции main создается переменная nlines, которая инициализируется значением, равным количеству прочитанных строк.
- Если количество строк не превышает максимальное значение, то происходит сортировка массива строк с помощью функции qsort.
- Затем происходит вывод отсортированных строк на экран с помощью функции wntelines.
- Если же количество строк превышает максимальное значение, то выводится сообщение об ошибке и возвращается значение 1.
- Функция readlines работает в цикле, пока не будет достигнут конец файла или не будет достигнуто максимальное количество строк.
- В каждой итерации цикла считывается строка с помощью функции getline, выделяется память под строку с помощью функции alloc и добавляется в массив строк.
- Функция qsort сортирует массив строк по умолчанию, сравнивая строки посимвольно.
- Функция wntelines выводит строки на экран в порядке их сортировки.
- Функция getline считывает строку из файла или стандартного ввода и возвращает ее длину.
- Функция alloc выделяет память под строку указанной длины.
- Если память не может быть выделена, то возвращается значение NULL.
- Если выделенная память не может быть записана или прочитана, то возвращается значение -1.
- Значение MAXLINES используется для контроля количества строк, считываемых из файла или стандартного ввода.
- Значение MAXLEN используется для контроля максимальной длины считываемой строки.
- Значение nlines используется для контроля количества строк, которые уже были прочитаны и добавлены в массив.
- Значение p используется для хранения указателя на выделенную память под строку.
- Значение len используется для хранения длины считываемой строки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д