23 / 23 / 9
Регистрация: 24.04.2010
Сообщений: 220
1

Перенос дробной части из вещественного массива в целый

15.12.2010, 21:40. Показов 1192. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте уважаемые программисты Есть такая задачка.Дан массив из 10 вещественных случайных чисел. Числа принадлежат отрезку[-5.8;5.9].
Сформировать массив из 10 целых чисел, каждый элемент которого вычисляется по следующему правилу: число равно дробной части соответствующего элемента заданного массива и имеет три разряда. как заполнить массив случайными вещественными числами?

Добавлено через 1 час 2 минуты
Подскажите хотя бы примерно. просто я пробывал генератор с целыми числами работает, с вещественными уже нет как ее решить?
C
1
2
3
4
5
6
{srand(time(NULL));
for(i=0; i<M; i++)
    {
    mass[i]=rand()%100+1;
    printf ("\nmass[%d]=%d\n", i, mass[i]);
    }
Добавлено через 41 минуту
почему не получается создать массив вещественных случайных чисел, я поробывыл поделить на /100. Все равно округляется до целых чисел. Как сделать правильно?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include <stdlib.h>
 
main()
{
srand(time(NULL));
int mass[10];
int i;
for(i=0; i<10; i++)
{mass[i]=rand()%58+1/100;
   printf("%d\n",mass[i] );      
 }
 getch();}
Добавлено через 43 минуты
я уже пробывал и так
C
1
2
3
4
5
6
7
8
9
 main()
{
srand(time(NULL));
int mass[10];
int i;
for(i=0; i<10; i++)
{mass[i]=rand()%58+1/100;
printf("%d\n",float(mass[i]));} 
 getch();}
и эдак... фигня какая то получается- программа почему то выводит нолики. Подскажите пожалуйста как правильно нужно сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2010, 21:40
Ответы с готовыми решениями:

Последовательность в дробной части вещественного числа
Верно ли, что первые n цифр дробной части заданного по-ложительного вещественного числа образуют...

Порядок дробной части вещественного числа.
Здравствуйте, уважаемые программисты всея форума! Доброго вам времени суток! У меня случилось...

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

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

4
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
15.12.2010, 22:16 2
Вещественные числа из этого диапазона: [-5.8;5.9] с тремя разрядами после запятой:
C
1
(double)(rand()%(11701)-5800)/1000.;
1
377 / 357 / 23
Регистрация: 14.12.2010
Сообщений: 1,265
15.12.2010, 22:21 3
ты же вроде о вещественных числах говоришь, а массив int используешь.
1/100 даст 0, а 1/100.0 - даст 0,01 - в первом случае обе переменные целочисисленные, соответственно памяти и выделяется под целочисленный результат.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
    float mass[10];
    int i;
    for(i=0; i<10; i++)
    {
    mass[i]=rand()%58+1/100.0;
    printf("%f\n",result[i]);
    }
}
0
23 / 23 / 9
Регистрация: 24.04.2010
Сообщений: 220
15.12.2010, 23:03  [ТС] 4
deadlock приденная вами программа не работает, из за того же пересечения с типом int

Добавлено через 1 минуту
можно ли это реализовать как нибудь по другому?

Добавлено через 7 минут
если ставить double mass; то тоже выходит ошибка...
0
23 / 23 / 9
Регистрация: 24.04.2010
Сообщений: 220
17.12.2010, 20:56  [ТС] 5
В реализации кода мне очень помог товарищ valeriikozlov(Огромное ему за это спасибо). Вообщем получился такой код
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
 main()
{
srand(time(NULL));
double mass[10];
int mas[10];
int i;
for(i=0; i<10; i++)
{mass[i]=((double)(rand()%(11701)-5800))/1000.;
printf("%.3lf\n",mass[i]);} 
 
printf("Tri razryda drobnoi chasti:\n");
for(i=0; i<10; i++)
{mas[i]=(int)(mass[i]*1000.)-((int)mass[i])*1000;
printf(" %d\n", mas[i]);}
 
 getch();}
Но результаты он выводит не совсем верно, во втором массиве цылых чисел получается на еденичку менше, можно ли как то увеличить на единичку?
0
17.12.2010, 20:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2010, 20:56
Помогаю со студенческими работами здесь

Найти произведение первой цифры целой части и третьей цифры дробной части вещественного числа
Помогите написать программу в Паскале Найти произведение первой цифры целой части и третьей цифры...

Разделитель целой и дробной части вещественного числа
Вопрос, как сделать, чтобы во время работы программы при представлении результатов расчетов и...

Вывести 3 цифры из дробной части вещественного числа
Учитель с Информатики дал задачу. Без div и mod. Дано действительное число x. Через запятую...

Получить первую цифру из дробной части положительного вещественного числа
Присвоить целой переменной k первую цифру из дробной части положительного вещественного...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru