Перенос дробной части из вещественного массива в целый - 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();}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем функцию main()
- Инициализируем генератор случайных чисел
- Создаем массив из 10 элементов типа double и int
- Задаем цикл от 0 до 10 для заполнения массива double и вывода его элементов на экран
- Используем функцию rand() для получения случайного числа в диапазоне от 5800 до 11700
- Полученное случайное число приводим к типу double и делим на 1000 для получения десятичной части числа
- Выводим полученное число на экран
- Задаем цикл от 0 до 10 для переноса дробной части из массива double в массив int
- Приводим элемент массива double к типу int, умножаем его на 1000 и вычитаем из него произведение первого элемента массива int на 1000
- Выводим полученное число на экран
- Ждем нажатия клавиши для выхода из программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д