Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2010, 00:21   #1
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию

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

извините что так долго не отвечал, я болел. Как можно сформировать массив из 10 вещественных чисел в отрезке [-5.8;5.9]? чего я только не перепробывал... функция rand отказывается работать с вещественными числами. Почему так?

Последний раз редактировалось alex_fcsm; 15.12.2010 в 16:09.
Lodas вне форума Ответить с цитированием
Старый 15.12.2010, 16:08   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Формулу придумайте, например

Код:
(random(590)-random(580))/100;
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 15.12.2010, 17:10   #3
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию

непонял, а как мне промежуток указать? можно поподробней? Ведь числа должны быть любые вещественные в диапазоне [-5.8;5.9], и потом в языке си по моему не работает функция random...

Подскажите хотя бы примерно. просто я пробывал генератор с целыми числами работает, с вещественными уже нет как ее решить?
Код:
{srand(time(NULL));
for(i=0; i<M; i++)
    {
    mass[i]=rand()%100+1;
    printf ("\nmass[%d]=%d\n", i, mass[i]);
    }

Последний раз редактировалось Stilet; 15.12.2010 в 20:35.
Lodas вне форума Ответить с цитированием
Старый 15.12.2010, 20:27   #4
Prime123
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 79
По умолчанию

Чтобы сделать из целых вещественные вы можете разделить большое целое число,589 например,на 100-и получите 5,89
Если я чем-то вам помог-не стесняйтесь,ставьте +

Если ошибаюсь-поправляйте,учусь на ошибках,реагирую адекватно
Prime123 вне форума Ответить с цитированием
Старый 15.12.2010, 20:54   #5
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию

неполучается. он округляет массив до целых чисел
Код:
#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();}
Lodas вне форума Ответить с цитированием
Старый 15.12.2010, 20:57   #6
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию

как можно сделать по другому?
Lodas вне форума Ответить с цитированием
Старый 15.12.2010, 21:02   #7
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

может все-таки float mass[10] a не int
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 15.12.2010, 21:10   #8
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию

Mad_Cat если я подставляю float то программа не работает... Я даже не знаю как еще можно реализовать генератор случайных вещественных
Lodas вне форума Ответить с цитированием
Старый 15.12.2010, 21:12   #9
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию

всмысле прписывает нолики 0000000000
Lodas вне форума Ответить с цитированием
Старый 15.12.2010, 21:41   #10
Lodas
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 61
По умолчанию

я уже пробывал и так
Код:
я уже пробывал и так [C] 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();}[/C] и эдак... фигня какая то получается- программа почему то выводит нолики. Подскажите пожалуйста как правильно нужно сделать?
и эдак... фигня какая то получается- программа почему то выводит нолики. Подскажите пожалуйста как правильно нужно сделать?
Lodas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив , двухмерный массив Woxx Паскаль, Turbo Pascal, PascalABC.NET 0 10.09.2010 09:28
одномерный массив serega721 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 15.05.2010 20:12
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Одномерный массив С++ Tat-ka Помощь студентам 4 21.11.2009 23:00
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40