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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2010, 18:04   #1
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию DevC++ switch

Извините за тупой вопрос, но уже час сижу и насилую DevC++ в попытке что-либо сделать.)))Так вот:необходимо в процессе выполнения программы, в зависимости от значений переменной типа int, присваивать те или иные значения переменной типа char. Вот фрагмент кода:
Код:
#include <stdio.h>
#include <conio.h>
main()
{
int g;
char h;
printf("Введите пол(1-женский,2-мужской): ");
scanf("%d", &g);
switch (g)
{
case 1:h=="Женский";break;
case 2:h=="Мужской";break;
}
puts (h);
getch();
}
это только фрагмент. Пробовал так-ввел две переменный типа char, назвал их так:f1 и f2, f1[]="Мужской", f2[]="Женский" и в процессе присваивал переменной h значение либо f1 либо f2. Иногда получалось так-доходит до вывода результатов, а в том месте, где должна была бы выведена переменная h-выводилось пустое место и внутри компа пищало что то 1 раз. Как мне лучшк справиться с поставленной задачей??

Последний раз редактировалось Stilet; 03.11.2010 в 13:37.
Диман56 вне форума Ответить с цитированием
Старый 02.11.2010, 18:18   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
char* h
помните что есть строка.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.11.2010, 18:24   #3
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Код:
#include <stdio.h>
#include <conio.h>
int main()
{
int g;
char* h;
printf("Введите пол(1-женский,2-мужской): \n");
scanf("%d", &g);
switch (g)
{
case 1:h="Женский";break;//Почему было ==?
case 2:h="Мужской";break;
}
printf("%s",h);
getch();
}
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 02.11.2010, 19:02   #4
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

Спасибо. Поправил код-все заработало!!!!!!!Еще раз-спасибо

Еще просьба-проконтролируйте меня пожалуйста))
Вот код:
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>
const int h=10;
main()
{
int b,c,d,i,g,Sport;
float a;
char Name[80],Last[80],f1[]="Женский",f2[]="Мужской";
char* h;
while(1)
{
printf("Нажмите 0 для выхода, 1 для продолжения: ");
scanf ("%d",&i);
if(i==1)
{
printf("Программа учета результатов состязаний\nНапишите имя ученика: ");
scanf ("%s",Name);
printf("И его фамилию: ");
scanf("%s",Last);
printf("Введите возраст: ");
scanf("%d", &c);
printf("Введите номер вида спорта: ");
scanf ("%d",Sport
printf("Введите пол(1-женский,2-мужской): ");
scanf("%d", &g);
printf("ВВедите результат: "); 
scanf("%f",&a);
b=a*100;
switch (c)
{
case 8:
switch (Sport)
{
case 1:
switch (g)
{
case 1:h="Мужской";break;
case 2:h="Женский";break;
}
break;
}
break;
}
printf ("Имя:%s\nФамилия:%s\nВозраст:%d лет\nПол:%s\nРезультат:%f\n",Name,Last,c,h,a);
}
else
{
exit(1);
}
}
getch();
}
где у меня идет много switch-я правильно все break расставил))

Последний раз редактировалось Stilet; 03.11.2010 в 13:37.
Диман56 вне форума Ответить с цитированием
Старый 03.11.2010, 08:55   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

У меня нескромный вопрос: кто под h памть выделяет и уничтожает?
p51x вне форума Ответить с цитированием
Старый 03.11.2010, 09:54   #6
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

Дык h -указатель. Ему в процессе выполнения программы присваивается то или иное значение))
Диман56 вне форума Ответить с цитированием
Старый 03.11.2010, 10:38   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Код:
h="Мужской"
Какой здесь присваивается ему адрес?
p51x вне форума Ответить с цитированием
Старый 03.11.2010, 11:08   #8
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

p51x, ему присваивается адрес строкового литерала. Коряво, конечно, но в данном случае (поскольку не надо строку изменять) работать будет. Хотя в общем случае подход неправильный.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
switch ололошенько Общие вопросы C/C++ 24 30.09.2010 16:52
switch Артэс Общие вопросы C/C++ 40 29.05.2010 20:11
Switch Division Общие вопросы C/C++ 3 11.01.2009 23:52
Вопрос IDE DevC++ Pord Софт 3 03.11.2008 23:20