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

преобразование типов - C++

Восстановить пароль Регистрация
 
Танчик007
Сообщений: n/a
03.05.2011, 15:51     преобразование типов #1
дано вещественное число r и целое неотриц m . записать r в строку в формате :m по правилам форматного вывода ТР (например ввод -123.456 и 9 вывод -1.23е+02) выводит несовсем то что нужно.. помогите разобраться...
Код
#include <stdio.h>
#include <stdlib.h>

void main(void)
{
    float r,r1;
    unsigned k=0,i=0,n,m;
    int j=0;
    char s[1];
    printf("Vvedite r: "); scanf("%r",&r);
    printf("Vvedite m: "); scanf("%m",&m);

    if(r>0) s[i++]=' ';
    else
    {
        s[i++]='-';
        r=-r;
    }
    n=r;
    if(n>0)
    {
        while(n>9)
        {
            r/=10; j++;//j-счетчик знаков перед запятой
            k++; n=r;
        }
    }
    else
    {
        while(n==0)
        {
            r*=10; j++;
            n=r;
        }
    }
    s[i++]=n+'0'; s[i++]='.';
    r=r-(int)r;
    r *=10;
    n=r;
    r=r-(int)r;
    r1=r;
    r1=r1*10-(int)r1;
    if(r1>=5) n++;
    s[i++]=n+'0';

    if (m>8)
    {
        m-=8;
        for(m; m>1; m--)
        {
            r*=10;
            n=r;
            r=r-(int)r;
            s[i++]=n+'0';
        }
        r*=10;
        n=r;
        r=r-(int)r;
        r1=r;//r1=0.4499
        r1=r1*10-(int)r1;
        if(r1>=5) n++;
        s[i++]=n+'0';
    }
    s[i++]='e';
    if(k==1) s[i++]='+';
    else s[i++]='-';

    if(j<10)
    {
        s[i++]='0';
        s[i++]=j+'0';
    }
    else
    {
        while(j>0)
        {
            s[i++]=j/10+'0';
            j/=10;
        }
    }
    s[i]='\0';
    printf("%s",s);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2011, 15:51     преобразование типов
Посмотрите здесь:

Преобразование типов C++
Преобразование типов C++
Преобразование типов C++
C++ Преобразование типов
Преобразование типов. C++
Преобразование типов C++
преобразование типов C++
C++ преобразование типов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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