Другое > Программирование (любое)
Язык программирования С
LanuHum:
Как мне свойственно, начну с негатива.
Советуют: "Учи С!"
А, как его учить?
Вот, будучи знакомым уже с Python, взялся разобраться с этим чудом С.
http://cpp.com.ru/kr_cbook/ch1kr.html#p16
Примеры не работают. Кто их пишет и нах, если они не работают?
--- Код ---
#include <stdio.h>
/* подсчет вводимых символов; 1-я версия */
main()
{
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf(“%ld\n”, nc);
}
--- Конец кода ---
Не работает.
--- Код ---
#include <stdio.h>
/* подсчет цифр, символов-разделителей и прочих символов */
main()
{
int с, i, nwhite, nother;
int ndigit[10];
nwhite = nother = 0;
for (i = 0; i < 10, ++i)
ndigit[i]= 0;
while ((c = getchar()) != EOF)
if (c >='0' && с <= '9')
++ndigit[c – '0'];
else if (c == ' ' || c == '\n' || c == '\t')
++nwhite;
else
++nother;
printf("цифры =");
for (i = 0; i < 10; ++i)
printf("%d", ndigit[i]);
printf(", символы-разделители =%d, прочие =%d\n", nwhite, nother);
}
--- Конец кода ---
Не работает. 25 строчек кода - 3 ошибки
--- Код ---
lesson_1.c:15:13: ошибка: в программе обнаружен некорректный символ «\200»
lesson_1.c:15:13: ошибка: в программе обнаружен некорректный символ «\223»
lesson_1.c:15:28: ошибка: expected «]» before '0'
++ndigit[c – '0'];
--- Конец кода ---
Подскажите мне, пожалуйста,где найти курс, в котором все примеры работают.
Striver:
--- Цитировать ---Вот, будучи знакомым уже с Python, взялся разобраться с этим чудом С.
--- Конец цитаты ---
Ох, вряд-ли это приведёт к чему-то хорошему...
Когда я 12 лет назад познакомился с Питоном, я забросил С++ как страшный сон, и с тех пор он мне не был нужен. С не такой кривой, как С++, но сложностей в нём тоже хватает.
С тех пор я так или иначе изучал Java, Sheme, D (D - классный язык, леплю на нём иногда по-мелочи), но вот к С возвращаться не хочется.
--- Цитировать ---/* подсчет вводимых символов; 1-я версия */
--- Конец цитаты ---
Скачал компилятор, скомпилил, вот вывод программы:
--- Код ---
D:\moe\prg\98-dmc>proba02
сысыфс
7
^C
D:\moe\prg\98-dmc>proba02 < aaa.txt
13
--- Конец кода ---
т.е. у меня программа работает.
LanuHum:
--- Цитата: Striver от 05 Декабрь 2015, 14:31:29 ---
--- Цитировать ---Вот, будучи знакомым уже с Python, взялся разобраться с этим чудом С.
--- Конец цитаты ---
Ох, вряд-ли это приведёт к чему-то хорошему...
Когда я 12 лет назад познакомился с Питоном, я забросил С++ как страшный сон, и с тех пор он мне не был нужен. С не такой кривой, как С++, но сложностей в нём тоже хватает.
--- Цитировать ---/* подсчет вводимых символов; 1-я версия */
--- Конец цитаты ---
Скачал компилятор, скомпилил, вот вывод программы:
--- Код ---
D:\moe\prg\98-dmc>proba02
сысыфс
7
^C
D:\moe\prg\98-dmc>proba02 < aaa.txt
13
--- Конец кода ---
т.е. у меня программа работает.
--- Конец цитаты ---
Дело ни в том, какой язык хорош для использования. Дело в том, что нужно научиться читать уже написанное разработчиками Блендера.
Так, у тебя работает, почему не работает тогда у меня? Потому что линукс? Где искать различия написания кода на С для разных осей?
Striver:
--- Цитировать ---Так, у тебя работает, почему не работает тогда у меня?
--- Конец цитаты ---
Вывод программы сюда скопируй.
--- Цитировать --- Потому что линукс? Где искать различия написания кода на С для разных осей?
--- Конец цитаты ---
В линуксе однозначно с С проще, чем винде, вряд-ли проблема из-за этого.
LanuHum:
Кстати, нашёл в интернете свой вопрос. У чела не получалось исполнить пример. Ему написали следующее:
--- Код ---
#include <stdio.h>
main()
{
int nc;
nc = 0;
while (getchar() != EOF)
{
++nc;
printf("%ld\n", nc);
}//без этой скобки в цикл входит только увеличение переменной nc, а функция printf
//выполнится только когда getchar() даст == -1;
}
--- Конец кода ---
Значит, проблема всё таки есть. Но, даже этот исправленный вариант даёт смутное представление.
Собираю этот код, запускаю, набираю текст, жму Enter
--- Код ---
фывук
1
2
3
4
5
6
7
8
9
10
11
--- Конец кода ---
Это что?
Навигация
Перейти к полной версии