Случайное число записать в массив - C (СИ)
Формулировка задачи:
Задание 1: Запись в файл данных
1. Запросить у пользователя число N
2. Сгенерировать N чисел случайным образом
3. Записать сгенерированные числа в файл
это само задание, но у меня не получается записать случайные числа в массив
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
main()
{
int q, i, w[q];
printf("Vvedite chislo N: \n");
scanf("%i", q);
for(i=0;i<=q;i++)
w[i] = 0+rand()%10;
printf("i=%i", i);
getch();
}Решение задачи: «Случайное число записать в массив»
textual
Листинг программы
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) //int main
{
int q, i, w[q];
srand(time(NULL)); //теперь числа будут действительно случайные
printf("Vvedite chislo N: \n");
scanf("%i", &q); //был пропущен амперсанд
for(i=0;i<q;i++) // нельзя было делать i<=q, т.к. выход за пределы массива
{
w[i] = rand()%10;
printf("w[%d]=%d\n",i,w[i]);
}
getch();
return 0; //не забывайте
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со случайными числами и временем
- Объявление переменной
qдля хранения количества случайных чисел, которые нужно сгенерировать - Объявление переменной
iдля хранения индекса текущего числа в массиве - Объявление массива
wдля хранения случайных чисел. Размер массива определяется переменнойq - Инициализация генератора случайных чисел с помощью функции
srand(time(NULL)). Это позволяет получать разные случайные числа при каждом запуске программы - Вывод сообщения с просьбой ввести количество случайных чисел, которые нужно сгенерировать
- Считывание введенного значения переменной
qс помощью функцииscanf(%i, &q) - Создание цикла
for, который будет выполнятьсяqраз, по каждому индексу массиваw - Генерация случайного числа в диапазоне от 0 до 9 с помощью функции
rand()%10и сохранение его в соответствующем элементе массиваw - Вывод сообщения сгенерированного случайного числа и его индекса
- Ожидание нажатия клавиши для завершения программы с помощью функции
getch() - Возвращение значения 0, что означает успешное завершение программы