Сгенерировать и вывести на экран m целых случайных чисел - C (СИ)
Формулировка задачи:
Числа m, n и k (3≤ k 10) вводятся с клавиатуры. Сгенерировать и вывести на экран m целых случайных чисел из промежутка, указанном в пункте а, и n действительных чисел (выводить на экран с указанной точностью) из промежутка, указанном в пункте b. Вывод на экран осуществлять по k чисел в строке.
a [-11, 111] b [ 2, 6 ] с точностью до тысячных
Решение задачи: «Сгенерировать и вывести на экран m целых случайных чисел»
textual
Листинг программы
#include <stdio.h>
#include <Windows.h>
#include <time.h>
int main() {
srand(time(NULL));
int m, n, k, i,j;
printf("Enter m:\n");
scanf("%d", &m);
printf("Enter n:\n");
scanf("%d", &n);
printf("Enter k:\n");
scanf("%d", &k);
int *int_numb = malloc(m * sizeof(int));
double *real_numb = malloc(n * sizeof(double));
// creating the array of integer numbers in the range [-11;111]
for (i = 0; i < m; i++) {
int_numb[i] = rand() % (111 + 1 - (-11)) + (-11);
}
// creating the array of real number in the range [2;6]
for (i = 0; i < n; i++) {
real_numb[i] = (((double)rand()*(6 - 2) / RAND_MAX) + 2);
}
printf("Integer numbers in the range [-11;111]\n");
for (i = 0; i < m; i++) {
if (i%k == 0 && i != 0) {
printf("\n");
}
printf("%3d ", int_numb[i]);
}
printf("\n\n");
printf("Real numbers in the range [2;6]\n");
for (i = 0; i < n; i++) {
if (i%k == 0 && i != 0) {
printf("\n");
}
printf("%.3f ", real_numb[i]);
}
printf("\n\n");
system("pause");
return 0;
}
Объяснение кода листинга программы
В этом коде выполняются следующие действия:
- Инициализируются переменные
m,n,k,i,jтипаintиdoubleсо значениями, которые пользователь вводит с клавиатуры. - Генерируются случайные числа в заданном диапазоне.
- Выделяется память под массивы
int_numbиreal_numbс помощью функцииmalloc(). - Создаются массивы
int_numbиreal_numb. - С помощью цикла
forвыводятся на экран сгенерированные числа. - При нажатии клавиши
Enterпрограмма завершается. Список действий в коде: - Инициализация переменных
m,n,k,i,j. - Вывод приглашения для ввода значений
m,n,k. - Выделение памяти под массивы
int_numbиreal_numb. - Создание массивов
int_numbиreal_numb. - Генерация случайных чисел в заданном диапазоне и заполнение ими массивов
int_numbиreal_numb. - Вывод на экран сгенерированных чисел.
- Ожидание нажатия клавиши
Enterдля завершения программы. - Освобождение памяти, выделенной под массивы
int_numbиreal_numb, с помощью функцииfree().