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

одномерный массив помощь в отладке программы - C++

Восстановить пароль Регистрация
 
sonice
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 41
07.10.2011, 11:59     одномерный массив помощь в отладке программы #1
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
#include <iostream>
#include <conio.h>
#include <locale.h>
#include <stdlib.h>
#include <iomanip>
#define m 12
using namespace std;
 
void main()
{
    setlocale(LC_ALL,"Russian");
    
    double f[m],y[m];
    int i;
    int n;
    
    do
    {cout<<"Введите размерность массива от 0 до 12:";
        cin>>n;
    }
    
    while ((n>=m)||(n<0));
    
        //const int n=12;
    cout<<" Введите элементы массива y:"<<endl; 
    for (i=0; i<n; i++)
    {   
        cout<<"y["<<i<<"]=" ;
        cin>>y[i];
    }
        cout<<"Array f:"<<endl;
        for (i=0; i<n; i++)
        {
            f[i]=(1- y[i]/(y[i])*(y[i]));
            if (2<=y[i])
                f[i] += y[i]*2;
            else 
                f[i] += y[i]*3;
    
    cout <<" индексы:"<<" ";
    for (i=0; i<n; i++)
    {
        cout<<setfill(' ')<<setw(3) << i<<"       ";
    }
    cout <<endl<<"элементы:"<<" ";
    for (i=0; i<n; i++)
    {
    
        cout<<setfill(' ')<<setw(3) << f[i]<<" "; 
        
    }
    
        }
        cout<<"Нажмите любую клавишу ";
    _getch();
    
}

Собственно это сама программа, не могу найти ошибку вроде все норм до вывода результатов, пишет неумоверные числа, думаю ошибка в условии

Добавлено через 1 минуту
По условию:Дан массив y1, …, y12.
Сформировать новый массив , f(i)= (1-y(i)/sqr(y(i)) + y(i)*a


где a = 2 если y(i)<=2 , a = 3 если y(i)>2

 Комментарий модератора 
Используйте теги форматирования кода!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2011, 11:59     одномерный массив помощь в отладке программы
Посмотрите здесь:

C++ Нужна помощь (одномерный статический массив)
C++ Нужна помощь в написании программы
C++ Нужна помощь! одномерный и двухмерные массивы
C++ Помощь с разбором программы
C++ Помощь в написании программы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
07.10.2011, 12:03     одномерный массив помощь в отладке программы #2
C++
1
f[i]=(1- y[i]/(y[i])*(y[i]));
Классное вычисление, сначала умножили, потом поделили. Получается
C++
1
f[i]=1-1/y[i];
Возможно здесь ошибка?
sonice
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 41
07.10.2011, 12:05  [ТС]     одномерный массив помощь в отладке программы #3
как тогда устронить? не подскажите?
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
07.10.2011, 12:11     одномерный массив помощь в отладке программы #4
Как вариант
C++
1
2
if (2<=y[i]) f[i]=(1-y[i])/(y[i]*y[i]+y[i]*2);
else f[i]=(1-y[i])/(y[i]*y[i]+y[i]*3);
Потому что формула имхо должна выглядеть так:
f(i)= (1-y(i)) / (sqr(y(i)) + y(i)*a)

Добавлено через 3 минуты
Второй вариант для формулы: f(i)= (1-y(i)) / sqr(y(i)) + y(i)*a
C++
1
2
if (2<=y[i]) f[i]=(1-y[i])/(y[i]*y[i]) + y[i]*2;
else f[i]=(1-y[i])/(y[i]*y[i]) +y[i]*3;
Разберитесь какой вариант правильный
sonice
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 41
07.10.2011, 12:43  [ТС]     одномерный массив помощь в отладке программы #5
понял, спасибо, но почему опять числа с мантиссой причем одинаковые при разных значениях

Добавлено через 29 минут
даже при одинаковых вводимых значениях, выдает разные в ответе
Yandex
Объявления
07.10.2011, 12:43     одномерный массив помощь в отладке программы
Ответ Создать тему
Опции темы

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