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

Почему на экран выводится цифры в формате с E (4.34e)? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как создать динамический массив размерностью m на n? http://www.cyberforum.ru/cpp-beginners/thread190091.html
подскажите, а то я только n на n создавать умею)
C++ не могу сделать лабораторки по инфе на языке C++ помогите не получаются лабы по инфе!!! Посмотрите кто может помочь я 8 вариант! просто сроки поджимают а надо сдать 7 лабораторок по инфе!!! студент 1 курса Прикрепляйте файлы к сообщениям. http://www.cyberforum.ru/cpp-beginners/thread190089.html
C++ Лабораторная работа по С++.Не поняла циклы
дана последовательность n из вещественных чисел. Определить, образуют ли они возрастающую последовательность?
Перевод числа из 10 с.с. в 8 с.с. C++
не пойму как создать программу по переводу числа из 10 с.с. в 8 с.с. . Дали несколько задач на расчётно-графическую работу,а учитель толком не объясняет,хотя дата сдачи - через неделю.
C++ Найти сумму ряда с точностью e http://www.cyberforum.ru/cpp-beginners/thread190049.html
Найти сумму ряда с точностью e=10-4, общий член которого
C++ ОТРЕДАКТИРОВАТЬ ПРОГРАММУ 1. Создать структуру для работы с рациональными дробями (вида m/n). Данные структуры: числитель, знаменатель, десятичный вариант дроби. Создать функции: ввода числителя и знаменателя, вывода дроби в рациональном и десятичном вариантах с точность до 3 знака после запятой. #include<iostream.h> struct List { //setlocale(LC_ALL, "Russian"); int chisl; int znam; int des; }; подробнее

Показать сообщение отдельно
Don Vito
9 / 9 / 1
Регистрация: 22.11.2009
Сообщений: 162
12.11.2010, 20:57  [ТС]     Почему на экран выводится цифры в формате с E (4.34e)?
Немного изменил майн...

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
int main (){
 
char  A [250];
double * p;
 
cin >> A;
 
p = test (A);
 
 
if(p[0]!=2010){
 
    cout << "NOOOOOO"<< endl;
 
}
 
 
for (int i = 0; i < 3; i++){
 
cout  << p[i] << endl;
 
} 
 
if(p[0]!=2010){
 
    cout << "NOOOOOO"<< endl;
 
}
 
 
 
 
return 1;
 
}
если вводить 20101010 - то после того как я прошелся по p[i] for -

C++
1
2
3
4
5
for (int i = 0; i < 3; i++){
 
cout  << p[i] << endl;
 
}
p[o] ! = 2010;

Вообщем изменяются данные...

Вопрос почему, где ошибка?

Добавлено через 7 минут
Через printf

C++
1
2
3
4
5
for (int i = 0; i < 3; i++){
 
printf("%f", p[i]);
 
}
данные тоже теряются

Добавлено через 22 минуты
работает только если объвить массив [3] в майн и передать его в функцию... (Thanks easybudda)

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <iostream>
#include <iomanip>
using namespace std;
 
double* test(char *A, double _data[3]){
 
    char ch_year [5];
    char ch_month [3];
    char ch_day [3];
    double dl_year = 0;
    double dl_month = 0;
    double dl_day = 0;
    double *data = 0;
    //double _data [3];
    int count = 0;
    int i ;
    for (i = 0; i < 4; i++, count++){
    
        ch_year [i] = A [count];
     
    }
 
    ch_year [i] = '\0';
 
 
    dl_year = atof(ch_year);
 
    for (i = 0; i < 2; i++, count++){
 
        ch_month[i] = A [count];
    
    }
 
    ch_month[i] = '\0';
 
    dl_month = atof(ch_month);
 
    for (i = 0; i < 2; i++, count++){
 
        ch_day [i] = A[count];
    }
 
    ch_day [i] = '\0';
 
    dl_day = atof(ch_day);
    
        _data[0] = dl_year;
        _data[1] = dl_month;
        _data[2] = dl_day;
 
        data = _data;
 
        for (i = 0; i < 3; i++){
        
            cout <<setprecision(0)<< _data[i];
        
        }
 
    return data;
 
}
 
int main (){
 
char  A [250];
double * p;
double arr [3];
 
cin >> A;
 
p = test (A,arr);
 
 
cout << endl;
 
for (int i = 0; i < 3; i++){
 
cout << p[i] << endl;
}
 
 
 
 
return 1;
 
}
Пожалуйста, объясните, почему не работает как я написал!

Ощэнь надобна...

Добавлено через 1 час 30 минут
Уффф...

разобрался...

Нужно массив внутри функции объявить как static double _data[3];

Косяк был в том, что указатель кузывал на несущществующий массив.

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