Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2016, 22:22   #1
Impressed
 
Регистрация: 07.11.2016
Сообщений: 6
По умолчанию Проблема с GNU C Compiler или с не самой умной головой.

Вечер добрый. Начал заниматься по книге МакГрэта "C для начинающих", по совету автора установил и использую GNU C
Compiler. При попытке воспроизвести чуть ли не первую программу, которая предполагает ввод целых чисел, символа и вывод введённых значений с указанием адреса ячейки памяти хранения символа, выскакивает следующая ошибка:

scanf.jpg

Код программы, честно списанный с учебника:

Код:
#include <stdio.h>

int main() {
 int num1,num2;
 char letter;

 printf("Enter integers:");
 scanf("%d, %d", num1, num2);
 printf("Enter char:");
 scanf("%c", letter);
 printf("Numbers were entered are: %d, %d\n", num1, num2);
 printf("Character were entered is: %d, %d\n", letter);
 printf("Character is stored at: %p\n", &letter);

 return 0;
}
Переустанавливал компилятор несколько раз, застопорился на этом дурацком моменте. Подскажите, в компиляторе ли проблема, заранее благодарен.
Impressed вне форума Ответить с цитированием
Старый 08.11.2016, 03:55   #2
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Вы в scanf'ах амперсанды забыли.
Croessmah вне форума Ответить с цитированием
Старый 08.11.2016, 11:38   #3
Impressed
 
Регистрация: 07.11.2016
Сообщений: 6
По умолчанию

Спасибо, исправил, но проблема не ушла, результат такой же. Полностью скопировал код из учебника, та же при вводе символа выдаёт эту же ошибку Windows.

Код:
#include <stdio.h>

int main() {
 char letter;
int num1, num2;

printf("Enter any one keyboard character");
scanf("%c", letter);
printf("Enter two integers separated by a space:");
scanf("%d, %d", &num1, &num2);

printf("Numbers input: %d and %d \n", num1, num2);
printf("Letter input: %c", letter);
printf("Stored at: %p \n", &letter);

 return 0;
}
Impressed вне форума Ответить с цитированием
Старый 08.11.2016, 11:50   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так вы не исправили первый scanf
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 08.11.2016, 15:35   #5
Impressed
 
Регистрация: 07.11.2016
Сообщений: 6
По умолчанию

Большое спасибо, думал, что в символах, как и в строках этого не требуется, всё заработало.
Impressed вне форума Ответить с цитированием
Старый 25.01.2017, 16:01   #6
Impressed
 
Регистрация: 07.11.2016
Сообщений: 6
По умолчанию

Я продолжаю разбирать примеры из вышеуказанного учебника, вновь застопорился на чём-то глупом:

Код:
#include<stdio.h>

int main () {

int num = 7;

(num % 2 !=0) ?
printf("%d is odd\n", num): printf("%d is even\n", num);
printf("There %s", (num==1)? "is": "are");
printf("%d %s\n", num (num==1)? "apple": "apples");

num = 1;

printf("There %s", (num==1)? "is": "are");
printf("%d %s\n", num (num==1)? "apple": "apples");

return 0;
}
Вот какие ошибки выдаёт GNU:


Ругается на скобки, которые присутствуют, и то, что вызванный объект - не функция, путает меня совсем, понятно, что не функция, просто хотел вывести эту переменную.
Impressed вне форума Ответить с цитированием
Старый 25.01.2017, 16:17   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так и что непонятного?

В 3 printf (про apple) видимо просто запятая пропущена.

Насчет первых двух, я не помню можно ли так делать в С (вроде нет), но даже если и можно, то вряд ли стоит так сложно писать if-else понятнее и удобнее же для такого.

ЗЫ не надо делать скриншоты консоли. Текст же тем и хорош, что легко копируется.
В вин10 cmd есть опция для нормального выделения (раньше надо было открывать меню по ПКМ) и Ctrl+C
http://www.howtogeek.com/howto/25590...ommand-prompt/
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 25.01.2017, 16:47   #8
Impressed
 
Регистрация: 07.11.2016
Сообщений: 6
По умолчанию

Ого, не знал про такое удобство с командной строкой. Понятно, что это даже не логично в таком случае использовать данную конструкцию, это просто в целях искусственной практики) А запятые вроде все на месте.
Impressed вне форума Ответить с цитированием
Старый 25.01.2017, 16:49   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

После первого num нет.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 25.01.2017, 17:07   #10
Impressed
 
Регистрация: 07.11.2016
Сообщений: 6
По умолчанию

В очередной раз спасибо большое за помощь. В этом учебнике примеры приведены с ошибками, часто не вижу даже самых простых.
Impressed вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ЯП Java. ArrayList. Определение самой длинной строки и вывод её или всех строк, если их несколько nevender Общие вопросы по Java, Java SE, Kotlin 14 10.09.2016 02:01
Как сбросить все фильтры в умной таблице? RISagitov Microsoft Office Excel 11 05.11.2015 19:00
Как задатьзначения по умолчанию у поля объекта или самой переменной. StE111 Общие вопросы Delphi 6 24.12.2013 16:45
проблема с sql запросом - Найти мужчину с самой высокой зарплатой с заданной специальностью до 30 лет hunter03 Помощь студентам 10 19.10.2011 09:27
Как сделать функцию MessageBox более умной assch Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 06.06.2011 22:50