Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Нубарик
4 / 4 / 3
Регистрация: 06.11.2010
Сообщений: 40
1

Деление без откидывания дробной части

09.11.2010, 13:51. Просмотров 729. Ответов 5
Метки нет (Все метки)

привет обитателям форума.
у меня вот такая вот проблемка, задание простое но поделить не могу никак.
*****
Задан массив из 10 элементов(с клавиатуры или случайно ).
надо все его элементы поделить на первый.
*****
вот так вот кажется нормально, но при деление откидывает дробовую часть:
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
#include <vcl.h>
#pragma hdrstop
#include <cstdlib>
#include <iostream>
#include <ctime>
#include <math.h>
 
using namespace std;
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main()
{
        const  n = 10;
        randomize ();
        int mas[n];
        float dil1,dil2,dil3,dil4,dil5,dil6,dil7,dil8,dil9,dil10;
        cout<<"\n masyv : \n";
        for(int i=0; i<n; i++)
        {
                mas[i]=random(101);
                cout<<mas[i]<<"\t";
         }
 
        dil1=mas[0]/mas[0];
        cout<<endl<<mas[0]<<"/"<<mas[0]<<" = "<<dil1<<endl;
 
        dil1=(mas[1])/(mas[0]);
        cout<<endl<<mas[1]<<"/"<<mas[0]<<" = "<<dil2<<endl;
 
        dil1=mas[2]/mas[0];
        cout<<endl<<mas[2]<<"/"<<mas[0]<<" = "<<dil3<<endl;
 
        dil1=mas[3]/mas[0];
        cout<<endl<<mas[3]<<"/"<<mas[0]<<" = "<<dil4<<endl;
 
        dil1=mas[4]/mas[0];
        cout<<endl<<mas[4]<<"/"<<mas[0]<<" = "<<dil5<<endl;
 
        dil1=mas[5]/mas[0];
        cout<<endl<<mas[5]<<"/"<<mas[0]<<" = "<<dil6<<endl;
 
        dil1=mas[6]/mas[0];
        cout<<endl<<mas[6]<<"/"<<mas[0]<<" = "<<dil7<<endl;
 
        dil1=mas[7]/mas[0];
        cout<<endl<<mas[7]<<"/"<<mas[0]<<" = "<<dil8<<endl;
 
        dil1=mas[8]/mas[0];
        cout<<endl<<mas[8]<<"/"<<mas[0]<<" = "<<dil9<<endl;
 
        dil1=mas[9]/mas[0];
        cout<<endl<<mas[9]<<"/"<<mas[0]<<" = "<<dil10<<endl;
 
 
        cout<<endl;
        system("pause");
        return 0;
}
помогите пзл а то повешусь на шнуре от мышки =))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2010, 13:51
Ответы с готовыми решениями:

Деление перменных с отображением дробной части
Здравствуйте!Скажите пожалуйста, как поделить переменные, чтобы отобразилась...

программа выводит целое число без дробной части, почему ?
программа выводит целое число без дробной части, почему ? void...

Определить равна ли сумма k цифр дробной части заданного вещественного числа сумме цифр целой части
Помогите доделать задание, исправьте пожалуйста код!!! Срочно! Задание:...

Определения, равна сумма цифр целой части вещественного числа сумме такого же количества цифр в дробной части
Нада написать 2 программки 1. Определения, равна сумма цифр целой части...

Вывести старшую цифру дробной части и младшую цифру целой части числа
Искал у вас, не нашел. Я новичок в этом деле, если вам не трудно напишите...

5
dihlofos
Бродяга
304 / 258 / 56
Регистрация: 27.08.2010
Сообщений: 553
09.11.2010, 13:58 2
Нубарик, массив у вас типа int. Вот и происходит целочисленное деление. В выводе тоже косяки: находите всё время dil1, а выводите dil2,dil3,dil4 - они вообще чему равны?

Добавлено через 2 минуты
И вообще, используйте циклы)
1
AemClock
6 / 6 / 0
Регистрация: 04.06.2010
Сообщений: 19
09.11.2010, 13:58 3
Надо привести при делении к дробному типу вот так:
C++
1
dil1=((float)mas[1])/(mas[0])
Также былобы удобно использовать массив dil, а не 10 переменных.
1
Нубарик
4 / 4 / 3
Регистрация: 06.11.2010
Сообщений: 40
09.11.2010, 13:58  [ТС] 4
я уже менял на float, кучу всего перепробовал, а ничего не меняется.
0
dihlofos
Бродяга
304 / 258 / 56
Регистрация: 27.08.2010
Сообщений: 553
09.11.2010, 14:02 5
Вроде так:
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
#include <cstdlib>
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main()
{
    const  n = 10;
    double mas[n];
    double dil; // или массив, если надо запоминать
 
    cout<<"Massiv: \n";
    for(int i=0; i<n; i++)
    {
        mas[i]=rand()%100+1;
        cout<<mas[i]<<"\t";
    }
 
    for(int i=0; i<n; i++)
    {
        dil=mas[i]/mas[0];
        cout<<endl<<mas[i]<<"/"<<mas[0];
        cout<<" = "<<dil<<endl;
    }
 
    cout<<endl;
    system("pause");
    return 0;
}
1
Нубарик
4 / 4 / 3
Регистрация: 06.11.2010
Сообщений: 40
09.11.2010, 14:09  [ТС] 6
большое спасибо поменял на
C++
1
dil1=((float)mas[1])/(mas[0]);
оно заработало, я пробовал похоже делать, но (float) писал уже после дроби (
ещё ток увидел, что в каждой строчке у меня было dil1.

Добавлено через 3 минуты
dihlofos

сейчас попробую Ваш вариант, спасиб за помощь.
0
09.11.2010, 14:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2010, 14:09

Отброс дробной части
как можно отбросить дробную часть(не округлить) от переменной?

Округление дробной части
Помогите пожалуйста!!! Как реализовать метод округления дробной части до 0,1...

Погрешность дробной части
Сначала опишу задание, потом проблему. Задание: Дан первый элемент,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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