Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
narvere
4 / 4 / 0
Регистрация: 05.10.2012
Сообщений: 47
1

Примеры в книгах не работают корректно

18.02.2015, 23:32. Просмотров 1075. Ответов 14
Метки нет (Все метки)

Добрый день, товарищи!

Начал изучение СИ по pdf книге К.Поляков "Программирование на языке Си." 1995-2012
Рассказывает всё понятно и интересно, но чем дальше в дебри СИ, тем реже его примеры работают у меня в Microsoft Visual Studio Express 2013.

вот к примеру изучаю массив:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
const int N = 10; // размер массива
main()
{
int i, A[N]; // объявление массива
printf("Введите массив A\n"); // подсказка для ввода
for ( i = 0; i < N; i ++ ) { // цикл по всем элементам
printf("Введите A[%d]> ", i ); // подсказка для ввода A[i]
scanf ("%d", &A[i]); // ввод A[i]
}
for ( i = 0; i < N; i ++ ) // цикл по всем элементам
A[i] = A[i] * 2; // умножить A[i] на 2
printf("\nРезультат:\n");
for ( i = 0; i < N; i ++ ) // цикл по всем элементам
printf("%d ", A[i]); // вывести A[i]
}
на выходе получаю ошибки:
Ошибка 1 error C2057: требуется константное выражение
Ошибка 3 error C2133: A: неизвестный размер
Ошибка 2 error C2466: невозможно выделить память для массива постоянного нулевого размера
4 IntelliSense: выражение должно иметь константное значение

Возможно этот код нужно дополнить?
Дело в том, я взял другие источники, там тоже примеры отказываются полноценно работать на моём ПК.

Или как вообще начать изучать СИ? Помогите новичку пожалуйста
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2015, 23:32
Ответы с готовыми решениями:

Не работают простые примеры из книги
Всем доброго времени суток. Сегодня начал программировать на Си, для этого использую Pelles C. ...

Корректно ли составлено задание и соответствуют ли ему примеры?
VB начал изучать три дня назад. Задание на контрольную работу в универе. Решать не прошу. ...

Все примеры по C# не работают
Пытаюсь запустить ряд примеров из статей, типа: using System; using System.WinForms; using...

Не работают примеры из учебника???
Собственно говоря попробовал набрать два таких примера: Пример №1: (Не выводится сообщение с...

Не корректно работают запросы
Помогите найти ошибки , господа :) имеется SQL код select monster.name_monster as Name, ...

14
Jewbacabra
Эксперт PHP
3747 / 3093 / 1362
Регистрация: 24.04.2014
Сообщений: 9,376
18.02.2015, 23:36 2
Цитата Сообщение от narvere Посмотреть сообщение
main()
int main()
Цитата Сообщение от narvere Посмотреть сообщение
Microsoft Visual Studio Express 2013
чтобы работал scanf в самое начало добавить
C
1
#define _CRT_SECURE_NO_WARNINGS
0
narvere
4 / 4 / 0
Регистрация: 05.10.2012
Сообщений: 47
18.02.2015, 23:43  [ТС] 3
Ошибки не исчезли
0
S_el
2223 / 1688 / 354
Регистрация: 15.12.2013
Сообщений: 6,736
18.02.2015, 23:47 4
Цитата Сообщение от narvere Посмотреть сообщение
Ошибки не исчезли
Изменились или нет?Попробуйте скомпилировать из консоли как .c файл.
0
narvere
4 / 4 / 0
Регистрация: 05.10.2012
Сообщений: 47
18.02.2015, 23:47  [ТС] 5
Вообще мне интересно в чём подвох? Книга рассчитана на новичка, а рассматриваемые примеры не работают... Почему там вкрадываются ошибки? Может код "устаревает" и не работает на новых IDE?

По какой литературе вообще изучать новичку СИ? С чего вы сами начинали?

Заранее спасибо!
0
Jewbacabra
Эксперт PHP
3747 / 3093 / 1362
Регистрация: 24.04.2014
Сообщений: 9,376
18.02.2015, 23:51 6
Цитата Сообщение от narvere Посмотреть сообщение
С чего вы сами начинали?
С. Прата
Цитата Сообщение от narvere Посмотреть сообщение
Может код "устаревает" и не работает на новых IDE?
у меня на VS 13 работает.
Как проект создавал, и откуда студию брал?

Добавлено через 2 минуты
Цитата Сообщение от S_el Посмотреть сообщение
Попробуйте скомпилировать из консоли как .c файл
Присоединяюсь. ИМХО в начале обучения лучше "руками" пособирать программы, и только потом переходить в различным иде.
0
narvere
4 / 4 / 0
Регистрация: 05.10.2012
Сообщений: 47
18.02.2015, 23:52  [ТС] 7
вот скриншот
0
S_el
2223 / 1688 / 354
Регистрация: 15.12.2013
Сообщений: 6,736
18.02.2015, 23:52 8
Цитата Сообщение от narvere Посмотреть сообщение
Книга рассчитана на новичка, а рассматриваемые примеры не работают...
Книга написана про язык C,а вы работаете скорее всего в проекте для C++. Или смените инструмент или настройте IDE.

Цитата Сообщение от narvere Посмотреть сообщение
По какой литературе вообще изучать новичку СИ? С чего вы сами начинали?
Есть-же важная тема:
Литература Си
Большинство начинало с Язык программирования Си (Керниган и Ритчи),но для меня эта книга показалось сложноватой(как для новичка),так что рекомендую взять:
Стивен Прата - Язык программирования C. Лекции и упражнения
У него отличная книга и по C++.
0
Jewbacabra
Эксперт PHP
3747 / 3093 / 1362
Регистрация: 24.04.2014
Сообщений: 9,376
18.02.2015, 23:57 9
Цитата Сообщение от narvere Посмотреть сообщение
вот скриншот
1)
Цитата Сообщение от Jewbacabra Посмотреть сообщение
чтобы работал scanf в самое начало добавить
в начало, а не на 2 строчку
2) почему файл с исходным кодом в ресурсах? он должен быть в "файлы исходного кода"
0
narvere
4 / 4 / 0
Регистрация: 05.10.2012
Сообщений: 47
19.02.2015, 00:08  [ТС] 10
Создавал проект по инструкции: переименовал имя проекта *.cpp в *.c и всё. Везде заявлено, что этих действий достаточно, чтобы объяснить VS2013 что буду работать с СИ, а не СИ++.

Может есть что-то попроще, чем VS2013?

Добавлено через 7 минут
- исправил. ошибки никуда не делись...

Не знаю, что и думать. В этом семестре нужно сдавать экзамен по алгоритмам и тд, а само изучение уже в самом начале буксовать начало. (((
0
Jewbacabra
Эксперт PHP
3747 / 3093 / 1362
Регистрация: 24.04.2014
Сообщений: 9,376
19.02.2015, 00:12 11
Лучший ответ Сообщение было отмечено narvere как решение

Решение

narvere, а если вместо const int N = 10;
C
1
#define N 10
1
narvere
4 / 4 / 0
Регистрация: 05.10.2012
Сообщений: 47
19.02.2015, 00:23  [ТС] 12
Подскажите еще такую вещь. Я хочу изучать Си, а большинство книг по СИ++. Даже тот-же С.Прата про СИ++ пишет. Как мне быть?
0
S_el
2223 / 1688 / 354
Регистрация: 15.12.2013
Сообщений: 6,736
19.02.2015, 00:24 13
Цитата Сообщение от narvere Посмотреть сообщение
Я хочу изучать Си, а большинство книг по СИ++. Даже тот-же С.Прата про СИ++ пишет. Как мне быть?
Учите C.У Праты есть и по C книга.Потом можете переходить к C++ и C#. Ну и что-то другое для разнообразия.
1
narvere
4 / 4 / 0
Регистрация: 05.10.2012
Сообщений: 47
19.02.2015, 00:30  [ТС] 14
Нашел, скачал. Спасибо за советы!
0
easybudda
Модератор
Эксперт CЭксперт С++
10209 / 6108 / 1536
Регистрация: 25.07.2009
Сообщений: 11,609
19.02.2015, 01:14 15
narvere,
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
/* const int N = 10; размер массива */
#define N 10
 
int main(void) {
    int i, A[N]; /* объявление массива */
    
    printf("Введите массив A\n"); /* подсказка для ввода */
    for ( i = 0; i < N; i ++ ) { /* цикл по всем элементам */
        printf("Введите A[%d]> ", i ); /* подсказка для ввода A[i] */
        scanf ("%d", &A[i]); /* ввод A[i] */
    }
    
    for ( i = 0; i < N; i ++ ) /* цикл по всем элементам */
        A[i] = A[i] * 2; /* умножить A[i] на 2 */
    
    printf("\nРезультат:\n");
    for ( i = 0; i < N; i ++ ) /* цикл по всем элементам */
        printf("%d ", A[i]); /* вывести A[i] */
    
    return 0;
}
Примеры в книгах не работают корректно

Но в винде скорее всего и с русскими буквами прийдётся поморочиться...
0
19.02.2015, 01:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2015, 01:14

Не работают примеры из книги Щупака
что делать? Одно только error C2664: CreateWindowExW: невозможно преобразовать параметр 2 из &quot;const...

Сохранение из DataGridView в БД: примеры не работают
На всех Форумах написано про сохранении данных из datagridview. Но делая как показано в постах, у...

Не работают официальные примеры в Connector/C++
Добрый день, установил последний коннектор с оф. сайта. К нему еще пришлось ставить библиотеку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru