Форум программистов, компьютерный форум CyberForum.ru

Первую и последнюю цифры произвольно числа поменять местами - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.94
deepLulz
 Аватар для deepLulz
4 / 4 / 0
Регистрация: 12.02.2012
Сообщений: 46
12.02.2012, 19:34     Первую и последнюю цифры произвольно числа поменять местами #1
Есть произвольное пятизначное число, которое вводиться с клавиатуры, к примеру 65489. Нужно вывести первую и последнюю цифры и после чего поменять их местами.
Я их вывел следующим образом:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
main(){
   int x,y,z;
   printf("X= ");
   scanf("%d",&x);
   y = x/10000;
   printf("First number= %d",y);
   z = x%10;
   printf("\nLast number= %d",z);
   return 0;
}
Как поменять первую и последнюю цифры местами?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UmeD
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 9
12.02.2012, 19:40     Первую и последнюю цифры произвольно числа поменять местами #2
без ввода третьей переменной так
C++
1
2
3
y=y-z;
z=y+z;
y=z-y;
deepLulz
 Аватар для deepLulz
4 / 4 / 0
Регистрация: 12.02.2012
Сообщений: 46
12.02.2012, 19:43  [ТС]     Первую и последнюю цифры произвольно числа поменять местами #3
Цитата Сообщение от UmeD Посмотреть сообщение
без ввода третьей переменной так
C++
1
2
3
y=y-z;
z=y+z;
y=z-y;
Мне нужно поменять первую и последнюю цифры в ЧИСЛЕ, а не в переменных. То есть изначальное число 65489, а нужно что бы после преобразования было 95489.
UmeD
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 9
15.02.2012, 22:44     Первую и последнюю цифры произвольно числа поменять местами #4
C++
1
2
z = x%10000;
x=(z+x%10)*10000
так последнюю мы переместим на место первой
C++
1
2
3
y = x/10000;
y=x%10-y
x=x-y
так мы первую цифру переместим на место последней
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.02.2012, 00:05     Первую и последнюю цифры произвольно числа поменять местами #5
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
#include <stdio.h>
#include <math.h>
 
#define digits_count(n) ( (int)log10((double)(n)) + 1 )
 
unsigned swap_first_last_digits(unsigned number){
    if ( number > 9 && number < 1000000000 ){
        unsigned numPower = (unsigned)pow(10.0, (double)digits_count(number) - 1.0);
        unsigned firstDigit = number / numPower;
        unsigned lastDigit = number % 10;
        
        return number - lastDigit + firstDigit - firstDigit * numPower + lastDigit * numPower;
    }
    
    return number;
}
 
int main(void){
    unsigned n;
    
    while ( printf("Number: ") && scanf("%u", &n) == 1 )
        printf("Result: %u\n", swap_first_last_digits(n));
    
    return 0;
}
При числах > 1000000000 возможно переполнение.
Ricco
0 / 0 / 0
Регистрация: 21.09.2012
Сообщений: 22
12.10.2012, 21:31     Первую и последнюю цифры произвольно числа поменять местами #6
Я делал такое же задание, довольно таки интересное, возился долго:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include<conio.h>
int main(void)
{
int n,n1,n2;
printf("N= ");
scanf("%d",&n);
n1 = n/10000;
if(n1<=0)
n1++;
printf("\nFirst digit: %d",n1);
n2 = n%10;
if(n2<=0)
n2++;
printf("\nLast digit: %d",n2);
printf("\n\nDisplaced digit 1: %d\n  \nDisplaced digit 2: %d\n",n2,n1);
 
getch();
 
return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2012, 12:49     Первую и последнюю цифры произвольно числа поменять местами
Еще ссылки по теме:

Дано натуральное число n. Переставить местами первую и последнюю цифры числа n C++
Дано натуральное число n. Переставить местами первую и последнюю цифры этого числа C++
C++ Дано натуральное число л. Переставить местами первую и последнюю цифры этого числа

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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
13.10.2012, 12:49     Первую и последнюю цифры произвольно числа поменять местами #7
задачка не сложная:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
 
unsigned long Change(unsigned long a)
{
   unsigned long x, y, deg = 1, b = a;
   x = y = a % 10;
   while (a /= 10)
   {
      x = a % 10;
      deg *= 10;
   }
   b += (x - y);
   return y * deg + b % deg; 
}
 
int main()
{
   printf("%lu\n", Change(123));   
   return 0;    
}
Yandex
Объявления
13.10.2012, 12:49     Первую и последнюю цифры произвольно числа поменять местами
Ответ Создать тему
Опции темы

Текущее время: 08:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru