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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2017, 02:20   #1
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию [C] что я накосячил в данной программе с указателями?

// программа крошится но без указателей работает идеально почему?

Код:
#include <stdio.h>
int main() {
setlocale(0, "");
unsigned char A;
unsigned char *p;
p = &A;
printf("веведите ваш возраст \n");
scanf("%d", *p );

if (*p>18){
printf("вам больше 18; %d\n",*p );}
else if (*p<=18)
{
printf("вам меньше или 18; %d\n",*p );
}


return 0;
}
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 07.11.2017 в 09:48. Причина: дописал описание
Александр121 вне форума Ответить с цитированием
Старый 07.11.2017, 07:25   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Потому что сканфу как раз нужен указатель.
p51x вне форума Ответить с цитированием
Старый 08.11.2017, 01:55   #3
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

можешь исправить?scanf("%d", *p ); *p- это и есть указатель?

Последний раз редактировалось Александр121; 08.11.2017 в 02:06.
Александр121 вне форума Ответить с цитированием
Старый 08.11.2017, 07:56   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

p - указатель, *p - нет.
p51x вне форума Ответить с цитированием
Старый 09.11.2017, 03:09   #5
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

всёровно крошится


Код:
#include <stdio.h>
int main() {
setlocale(0, "");
unsigned char A;
unsigned char *p;
p = &A;
printf("веведите ваш возраст \n");
scanf("%d", p );

if (*p>18){
printf("вам больше 18; %d\n",*p );}
else if (*p<=18)
{
printf("вам меньше или 18; %d\n",*p );
}


return 0;
}
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 09.11.2017 в 09:38.
Александр121 вне форума Ответить с цитированием
Старый 09.11.2017, 07:29   #6
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Почему у Вас везде unsigned char?
Когда scanf обрабатывает %d, ей нужен указатель на int.
Вот она и затирает лишнее
Black Fregat вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправить ошибки в данной программе. SSarox Помощь студентам 1 02.04.2014 13:35
Не получается разобраться в программе с указателями sunny_alice Паскаль, Turbo Pascal, PascalABC.NET 15 16.04.2011 22:26
Накосячил..что делать???(( vip131 Свободное общение 2 07.02.2008 07:42