Рандомное заполнение массива [-100:100] - C (СИ)
Формулировка задачи:
Приветы
Нужно заполнить одномерный массив элементами от -100 до 100, задав при этом вначале программы размер этого массива.
Код, в котором это будет реализовано:
#include "stdio.h"
#include "malloc.h"
int main() {
int *mass;
int i, n, k = 0;
int b[200];
printf("Enter size to massive: ");
scanf("%d", &n);
mass = (int*)malloc(n*sizeof(int));
for (i = 0; i < n; i++)
{
printf("a[%d] = ", i);
scanf("%d", &*(mass+i));
}
for(i=0; i<n; i++) {
if(*(mass+i)>=100) {
printf("ERORR!\nTRY AGAIN!\n");
return 0;
}
else if (*(mass+i)<=-100) {
printf("ERORR!\nTRY AGAIN!\n");
return 0;
}
}
for (i = 0; i<n; i++){
if (*(mass+i)>0) {
*(b+k) = *(mass+i);
k++;
}
}
for (i = 0; i<n; i++){
if (*(mass+i) == 0) {
*(b+k) = *(mass+i);
k++;
}
}
for (i = 0; i<n; i++){
if (*(mass+i)<0) {
*(b+k) = *(mass+i);
k++;
}
}
for (i = 0; i < n; i++)
{
printf(" %d ", *(b+i));
}
printf("\n");
return 0;
};Решение задачи: «Рандомное заполнение массива [-100:100]»
textual
Листинг программы
srand(time(NULL)); //зерно рандома
int i,n; //для цикла
scanf("%d",&n); //задаем размер, важно - сделать это перед объявлением самого массива
int ar[n];
for(i=0;i<n;i++) //запоняем рандомом
ar[i]=rand()%201-100;
Объяснение кода листинга программы
- Инициализация генератора случайных чисел с помощью функции srand(time(NULL));
- Объявление переменных i и n типа int для использования в цикле;
- Получение от пользователя размера массива с помощью функции scanf();
- Объявление массива ar типа int с полученным от пользователя размером;
- Заполнение массива ar случайными числами в диапазоне [-100,100] с помощью цикла for и функции rand()%201-100;
- Возвращение управления в основную программу.