Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Ответ
 
Опции темы
Старый 07.11.2016, 23:22   #1
Impressed
 
Регистрация: 07.11.2016
Сообщений: 6
Репутация: 10
По умолчанию Проблема с 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, 04:55   #2
Croessmah
Вредный кошак
Профессионал
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Адрес: г. Инза
Сообщений: 1,155
Репутация: 379
По умолчанию

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

Спасибо, исправил, но проблема не ушла, результат такой же. Полностью скопировал код из учебника, та же при вводе символа выдаёт эту же ошибку 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, 12:50   #4
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 16,975
Репутация: 3316

icq: 512-765
skype: alexp.frl
По умолчанию

Так вы не исправили первый scanf
Alex11223 вне форума   Ответить с цитированием
Старый 08.11.2016, 16:35   #5
Impressed
 
Регистрация: 07.11.2016
Сообщений: 6
Репутация: 10
По умолчанию

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

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

Код:

#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, 17:17   #7
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 16,975
Репутация: 3316

icq: 512-765
skype: alexp.frl
По умолчанию

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

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

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

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

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

icq: 512-765
skype: alexp.frl
По умолчанию

После первого num нет.
Alex11223 вне форума   Ответить с цитированием
Старый 25.01.2017, 18:07   #10
Impressed
 
Регистрация: 07.11.2016
Сообщений: 6
Репутация: 10
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


18:25.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru