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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2011, 23:13   #1
DupleTAX
 
Регистрация: 19.07.2011
Сообщений: 4
По умолчанию дизъюнкция, имхо..

Я новичок в C, поэтому не могу сообразить или нагуглить такую задачку:
//допустим, есть переменная...
int peremennaya = 23;
//надо получить:
char a = '2';
char b = '3';
//как я полагаю, с начала надо преобразовать тип peremennaya из int в char, а вот потом... Есть ли способ реализовать такую задачку? Или как сформулировать запрос в Гугле? Если это играет роль, пишу в CodeVision для МК AVR..
DupleTAX вне форума Ответить с цитированием
Старый 19.07.2011, 23:24   #2
Человек Панда
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 75
По умолчанию

Вообще можно.Если у вас будет строка как массив символов,то вообще по индексу идти можно.Но перейти от целого типа к строкам наверно к массиву символов навряд ли прийти сможете.Можно поступить следующим образом:разделите Ваше число на 10,выделите десятки,запишите результат в строку.Насчет единиц помудрить надо будет.Если число из n знаков,то делим на 100000...(n-1),выделяем тысячи,сотни и др.
Человек Панда вне форума Ответить с цитированием
Старый 19.07.2011, 23:43   #3
DupleTAX
 
Регистрация: 19.07.2011
Сообщений: 4
По умолчанию

На счет деления я думал.. Но надеялся на какой-то более элегантный вариант) Появилась идея: разделить peremennaya на 10 (ибо пока значения >= 100 не предусматриваются), округлить в меньшую сторону (получим a), затем от peremennaya отнять a - получим b. В принципе, преобразовывать в char необходимость отпадает..
DupleTAX вне форума Ответить с цитированием
Старый 20.07.2011, 09:50   #4
Nedward
Пользователь
 
Регистрация: 26.06.2011
Сообщений: 85
Смех

Цитата:
Сообщение от DupleTAX Посмотреть сообщение
надеялся на какой-то более элегантный вариант)
Их есть у меня
Программа просит ввести число, генерирует на его основе динамический массив символов и выводит построчно полученные символы из динамического массива. Хотел использовать строки, но ИМХО тогда получилось бы менее наглядно.
Код:
#include <iostream>
#include <locale>
#include <vector>

using namespace std;

int main()
{
	setlocale(LC_ALL,"Russian");
	int peremennaya; //Переменная, которую вводит пользователь.
	vector<char> c;  //Динамический массив переменных типа char
	cout << "Введите переменную: ";
	cin >> peremennaya;
	if (peremennaya!=0)
		while (abs(peremennaya) > 0)
		{
			c.push_back(abs(peremennaya)%10+'0');
			peremennaya=peremennaya/10;
		}
	else c.push_back('0');
	cout << "Выводим полученные символы:" << endl;
	for(vector<char>::iterator i=c.begin();i!=c.end();++i)
		cout << *i << endl;
}
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding
Nedward вне форума Ответить с цитированием
Старый 20.07.2011, 11:40   #5
Ru_DoLF
Ubuntu 10.04
Пользователь
 
Аватар для Ru_DoLF
 
Регистрация: 15.07.2010
Сообщений: 51
По умолчанию

Код:
#include <stdio.h>

int main()
{
	int var, a, b;	
	scanf("%d", &var);

	a = var / 10;
	b = var % 10;

	printf("a = %d, b = %d\n", a, b);

	return 0;
}
Язык образует среду мышления и формирует представление о том, о чем мы думаем (Б. Л. Уорф)
Ru_DoLF вне форума Ответить с цитированием
Старый 20.07.2011, 16:29   #6
Nedward
Пользователь
 
Регистрация: 26.06.2011
Сообщений: 85
По умолчанию

Цитата:
Сообщение от Ru_DoLF Посмотреть сообщение
Код:
#include <stdio.h>

int main()
{
	int var, a, b;	
	scanf("%d", &var);

	a = var / 10;
	b = var % 10;

	printf("a = %d, b = %d\n", a, b);

	return 0;
}
А где тут преобразование int в char?
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding
Nedward вне форума Ответить с цитированием
Старый 20.07.2011, 16:40   #7
l1pton17
Пользователь
 
Аватар для l1pton17
 
Регистрация: 01.11.2010
Сообщений: 75
По умолчанию

вот преобразование цифры int в char:
Код:
int a;
char b;

b:='0'+a;
l1pton17 вне форума Ответить с цитированием
Старый 20.07.2011, 16:58   #8
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

А теперь правильный вариант:
Код:
...
int i = 1234;
char str[255] = {0};

sprintf(str, "%d", i);
...
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 20.07.2011, 17:24   #9
l1pton17
Пользователь
 
Аватар для l1pton17
 
Регистрация: 01.11.2010
Сообщений: 75
По умолчанию

хочешь сказать, что остальные неправильные?
l1pton17 вне форума Ответить с цитированием
Старый 20.07.2011, 18:57   #10
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от l1pton17 Посмотреть сообщение
хочешь сказать, что остальные неправильные?
особенно твой
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ИМХО!? genrix Свободное общение 3 07.03.2011 11:27
Ассемблер. Математические задачи на зачет. ИМХО, тяжелые. Skleppy Помощь студентам 0 04.06.2009 21:38
Что такое "ИМХО" Sibedir Свободное общение 9 16.02.2008 22:24