Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Объявления о найме специалистов > Помогите за вознаграждение!


Автор: andtim23 25.12.2006, 23:33
Задание.

Перевести из восьмеричной системы счисления в десятичную положительное число с фиксированной точкой.

Завтра нужно сдать, ребят кому нечего делать   smile  помогите, думаю для Вас это просто сделать.
Если программу сдам, положу 100 р. на ваш телефон, честное слово!
[email protected]

Автор: Romikgy 26.12.2006, 00:10
а если у мя нет телефона?

Автор: paSha_X 26.12.2006, 00:23
 smile  smile  smile 

Автор: Romikgy 26.12.2006, 00:26
Код

#include <stdio.h>
#include <conio.h>
int main(int argc, char* argv[])
{
        int x;
        printf("Please enter octal int\n");
          scanf("%o",&x);
          printf("\nYou enter value decimal %d\n",x);
        printf("Please press any key ...\n");
        getch();
        return 0;
}

как расплачиваться будешь ? smile

Автор: zkv 26.12.2006, 01:21
Цитата(Romikgy @  26.12.2006,  00:26 Найти цитируемый пост)
как расплачиваться будешь ? smile

деньги - на помощь форуму, где то вверху ссылка есть smile 
только вот 
Цитата(andtim23 @  25.12.2006,  23:33 Найти цитируемый пост)
Если программу сдам,

вряд ли препод оценит остроумие smile

Автор: GePo 26.12.2006, 01:32
держи, один минус - конечное число в double. Другого способа не знаю:
Код

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main()
{
    char num[100];
    char *point_pos = NULL, *current;
    double result;

    printf("Enter the decimal number: ");
    scanf("%s", num);
    result = (double)strtol(num, &point_pos, 8);
    
    if (*point_pos) {
        double trac = 0.0;

        if (*point_pos != '.') {
            puts("Number is not octal");
            return;
        }

        current = point_pos;
        while (*current)
            current++;

        while (--current != point_pos) {
            trac = trac/8 + *current - '0';
        }
        result += trac/8;
    }

    printf("%f\n", result);
}

Вещественная точка - это символ точка ;)

Автор: andtim23 26.12.2006, 02:22
Цитата(GePo @ 26.12.2006,  01:32)
держи, один минус - конечное число в double. Другого способа не знаю:
Код

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main()
{
    char num[100];
    char *point_pos = NULL, *current;
    double result;

    printf("Enter the decimal number: ");
    scanf("%s", num);
    result = (double)strtol(num, &point_pos, 8);
    
    if (*point_pos) {
        double trac = 0.0;

        if (*point_pos != '.') {
            puts("Number is not octal");
            return;
        }

        current = point_pos;
        while (*current)
            current++;

        while (--current != point_pos) {
            trac = trac/8 + *current - '0';
        }
        result += trac/8;
    }

    printf("%f\n", result);
}

Вещественная точка - это символ точка ;)

Это работает?
В любом случае спасибо, завтра попробую сдать.

Автор: andtim23 26.12.2006, 18:19
GePo, завтра сдавать буду, кинь мне свои данные на маил. Есть ещё задачка одна!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)