Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Baustrel
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 26
#1

Поменять местами содержимое четных и нечетных разрядов в младшем байте

15.04.2012, 22:24. Просмотров 1571. Ответов 8
Метки нет (Все метки)

1 Найти количество чисел из диапазона от 100000 до 999999, у которых произведение первых 4 разрядов равно произведению 3 последних. Сколько среди них простых чисел.

2 Задано целое число типа WORD. Поменять местами содержимое четных и нечетных разрядов в младшем байте. Алгоритм преобразования оформить в виде функции. Исходное число и результат вывести в двоичной и десятичной форме.

Добавлено через 9 часов 9 минут
Есть какие мысли?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2012, 22:24
Ответы с готовыми решениями:

Числа. Подсчитать количество четных и нечетных чисел- разрядов. Найти суммы только всех четных и только нечетных, проверить какая из сумм больше
Добрый день, не могу понять как же составить программу для этой задачи без...

В строке символов поменять местами символы на четных и нечетных позициях
В строке символов поменять местами символы на четных и нечетных позициях.

Поменять местами слова строки стоящие на четных и нечетных позициях
Нужна помощь в лабораторной. Для корифеев задачка простая, но для меня...х))...

Поменять попарно местами символы, расположенные на четных и нечетных позициях
Помогите с задачей условия таковы: Задана символьная строка. Поменять попарно...

Поменять местами элементы, стоящие на четных местах, с элементами, стоящими на нечетных
Помогите составить программу. Условие: В заданном одномерном массиве поменять...

8
Nekto
342 / 287 / 37
Регистрация: 23.03.2012
Сообщений: 838
15.04.2012, 22:51 #2
Цитата Сообщение от Baustrel Посмотреть сообщение
Есть какие мысли?
Ну в первом делаешь перебор. Последний разряд - (число%10). Потом для следующего разряда - число=число/10. И точно так (число%10). И т.д. Перемножаешь, что надо, сравниваешь.
0
Kuzia domovenok
2261 / 2030 / 459
Регистрация: 25.03.2012
Сообщений: 7,173
Записей в блоге: 1
15.04.2012, 23:06 #3
разряды десятичные?
0
Baustrel
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 26
16.04.2012, 19:03  [ТС] #4
нет, двоичные

Добавлено через 19 часов 35 минут
Очень срочно помощь нужна, хотя бы на первую задачу)
0
Kuzia domovenok
2261 / 2030 / 459
Регистрация: 25.03.2012
Сообщений: 7,173
Записей в блоге: 1
16.04.2012, 19:18 #5
хотя бы на первую
C
1
2
3
4
5
6
7
8
9
10
11
12
13
int main()
{
int x;
int lowodd;
int loweven;
scanf("%d", &x);
lowodd=x&0xAA;
loweven=x&0x55;
x=x-(x&0xFF);//обнуление мл. байта, наверное лучше x=x&0xFFFFFF00, но тоже сойдёт.
x=x|(lowodd>>1)|(loweven<<1);
printf("%d", x);
return 0;
}
1
Baustrel
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 26
16.04.2012, 19:44  [ТС] #6
Спасибо конечно, но что-то не то она делает
0
Kuzia domovenok
2261 / 2030 / 459
Регистрация: 25.03.2012
Сообщений: 7,173
Записей в блоге: 1
16.04.2012, 20:21 #7
что конкретно не то?? Она меняет чётные и нечётные разряды младшего байта целого числа.
Я написал только первую задачу, а второй тут нет.

Добавлено через 11 минут
Прочитал условие задачи ещё раз: там дано число типа WORD
ему соответствует тип unsigned short, поэтому лучше так.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
int main()
{
unsigned short x;
unsigned short lowodd;
unsigned short loweven;
scanf("%d", &x);
lowodd=x&0xAA;
loweven=x&0x55;
x=x-(x&0xFF);//обнуление мл. байта, наверное лучше x=x&0xFFFFFF00, но тоже сойдёт.
x=x|(lowodd>>1)|(loweven<<1);
printf("%d", x);
return 0;
}
что здесь может не работать? это твои слова
я решил только первую из задач!
0
Baustrel
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 26
16.04.2012, 20:26  [ТС] #8
1 Найти количество чисел из диапазона от 100000 до 999999, у которых произведение первых 4 разрядов равно произведению 3 последних. Сколько среди них простых чисел. а с вот этой что?
0
Kuzia domovenok
2261 / 2030 / 459
Регистрация: 25.03.2012
Сообщений: 7,173
Записей в блоге: 1
16.04.2012, 20:34 #9
Это не та задача, которую я решил, я менял местами разряды в младшем байте.
[CPP]что конкретно не то?? Она меняет чётные и нечётные разряды младшего байта целого числа.
Я написал только первую задачу, а второй тут нет.

Добавлено через 11 минут
Прочитал условие задачи ещё раз: там дано число типа WORD
ему соответствует тип unsigned short, поэтому лучше так.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#define BINPRINT(x) printf("%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d"\
, ((x)&(1<<15))?1:0\
, ((x)&(1<<14))?1:0\
, ((x)&(1<<13))?1:0\
, ((x)&(1<<12))?1:0\
, ((x)&(1<<11))?1:0\
, ((x)&(1<<10))?1:0\
, ((x)&(1<<9))?1:0\
, ((x)&(1<<8))?1:0\
, ((x)&(1<<7))?1:0\
, ((x)&(1<<6))?1:0\
, ((x)&(1<<5))?1:0\
, ((x)&(1<<4))?1:0\
, ((x)&(1<<3))?1:0\
, ((x)&(1<<2))?1:0\
, ((x)&(1<<1))?1:0\
, ((x)&(1<<0))?1:0)
int main()
{
unsigned short x, y;
unsigned short lowodd;
unsigned short loweven;
scanf("%us", &y);
x=y;
lowodd=x&0xAA;
loweven=x&0x55;
x=x&0xFF00;
x=x|(lowodd>>1)|(loweven<<1);
printf("decimal given %us\n", y);
printf("decimal result %us\n", x);
printf("binary given \n"); BINPRINT(y);
printf("binary result \n"); BINPRINT(x);
return 0;
}
я решил только первую из задач!
что здесь может не работать? это твои слова?
Задано целое число типа WORD. Поменять местами содержимое четных и нечетных разрядов в младшем байте. Алгоритм преобразования оформить в виде функции. Исходное число и результат вывести в двоичной и десятичной форме.
0
16.04.2012, 20:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2012, 20:34

В рендомно заполненном массиве поменять местами значения четных и нечетных индексов
В массиве из 12 ячеек заполненный рендомно, поменять местами значения четных и...

В одномерном массиве А(10) поменять местами элементы стоящие на четных и нечетных местах
В одномерном массиве А(10) поменять местами элементы стоящие на четных и...

В матрице поменять местами строки, содержащие максимальное количество четных и нечетных элементов
Народ помогите пожалуйста. С моими знаниями С++ это ни в жизнь не решить, если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru