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