Перенос дробной части из вещественного массива в целый - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здраствуйте уважаемые программисты Есть такая задачка.Дан массив из 10 вещественных случайных чисел. Числа принадлежат отрезку[-5.8;5.9]. Сформировать массив из 10 целых чисел, каждый элемент которого вычисляется по следующему правилу: число равно дробной части соответствующего элемента заданного массива и имеет три разряда. как заполнить массив случайными вещественными числами?
Подскажите хотя бы примерно. просто я пробывал генератор с целыми числами работает, с вещественными уже нет как ее решить?
{srand(time(NULL));
for(i=0; i<M; i++)
    {
    mass[i]=rand()%100+1;
    printf ("\nmass[%d]=%d\n", i, mass[i]);
    }
почему не получается создать массив вещественных случайных чисел, я поробывыл поделить на /100. Все равно округляется до целых чисел. Как сделать правильно?
#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();}
я уже пробывал и так
 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();}
и эдак... фигня какая то получается- программа почему то выводит нолики. Подскажите пожалуйста как правильно нужно сделать?

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

textual
Листинг программы
#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();}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Объявляем функцию main()
  3. Инициализируем генератор случайных чисел
  4. Создаем массив из 10 элементов типа double и int
  5. Задаем цикл от 0 до 10 для заполнения массива double и вывода его элементов на экран
  6. Используем функцию rand() для получения случайного числа в диапазоне от 5800 до 11700
  7. Полученное случайное число приводим к типу double и делим на 1000 для получения десятичной части числа
  8. Выводим полученное число на экран
  9. Задаем цикл от 0 до 10 для переноса дробной части из массива double в массив int
  10. Приводим элемент массива double к типу int, умножаем его на 1000 и вычитаем из него произведение первого элемента массива int на 1000
  11. Выводим полученное число на экран
  12. Ждем нажатия клавиши для выхода из программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.5 из 5
Похожие ответы