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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2012, 19:36   #1
Александрq
Пользователь
 
Регистрация: 14.10.2012
Сообщений: 27
По умолчанию дописать программу

условие: поменять местами цифры старшего и младшего разрядов данного натурально числа(прим. из числа 3879 получить 9873)
программа:
Код:
#include<stdio.h>
#include <stdlib.h>
#include <conio.h>

int main(void)
{
int x,y,s=0;
printf("x=");
scanf("%d",&x);
while (x)
{
s=s*10+x%10;
x/=10;
}
x==y;
printf("y=%d\n",x);
getch();
return 0;
}

Последний раз редактировалось Stilet; 08.11.2012 в 19:51.
Александрq вне форума Ответить с цитированием
Старый 08.11.2012, 19:59   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
q:=3879;
q:=(q mod 10)*1000+(q div 1000)+(q-(q div 1000) *1000) div 10*10
Подойдет формула?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.11.2012, 21:50   #3
Александрq
Пользователь
 
Регистрация: 14.10.2012
Сообщений: 27
По умолчанию

на СИ такая формула не работает
Александрq вне форума Ответить с цитированием
Старый 08.11.2012, 21:57   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

На Си div меняешь на /, а mod на % - и все работает
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 08.11.2012, 21:59   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
int q=3879;
printf("%d",(q % 10)*1000+(q / 1000)+(q-(q / 1000) *1000) / 10*10);
Так лучше?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.11.2012, 22:25   #6
Александрq
Пользователь
 
Регистрация: 14.10.2012
Сообщений: 27
По умолчанию

спасибо работает, а с помощью цикла while как реализовать данный алгоритм?
Александрq вне форума Ответить с цитированием
Старый 08.11.2012, 22:46   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А х. его з.
Я как-то не сторонник индусского кода.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.11.2012, 23:00   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,302
По умолчанию

Код:
#include<stdio.h>
#include <stdlib.h>
 
int
main(void)
{
    int x, y, d, s;
    printf("x = ");
    scanf("%d", &x);
    s = x % 10;
    x /= 10;
    d = 10;
    y = 0;
    while (x > 9) {
        y += (x % 10) * d;
        d *= 10;
        x /= 10;       
    }
    y = d * s + y + x;
    printf("y = %d\n", y);
    return 0;
}
С однозначными неправильно работает.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дописать программу на С++ до 23.07 insar Фриланс 6 20.07.2011 10:16
Нужно дописать программу!!! Bal_Bes Помощь студентам 1 08.06.2011 18:08
Дописать программу Deshrefresh Помощь студентам 0 04.12.2010 13:31
дописать программу span80 Паскаль, Turbo Pascal, PascalABC.NET 0 20.05.2010 10:15
помогите дописать программу starry_night Помощь студентам 0 04.06.2008 19:24