Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
notorious174
0 / 0 / 0
Регистрация: 25.12.2016
Сообщений: 32
1

Дан массив размерности n. Заполнить массив случайными числами в диапазоне [-100;100]. Перевернуть массив:

18.05.2017, 19:19. Просмотров 1112. Ответов 3
Метки нет (Все метки)

Дан массив размерности n. Заполнить массив случайными числами в диапазоне
[-100;100]. Перевернуть массив: a[n-1]↔a[0], a[n-2]↔a[1] и т.д. Для работы с массивом использовать функцию.


пример программы
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Обнулить в массиве отрицательные элементы
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
using namespace std;
void func(int *a, int n)
{
    for (int i = 0; i < n; i++)
        if (a[i] < 0) a[i] = 0;
}
int main()
{
    int *a;
    int n;
    srand(time(NULL));
    printf("n= ");
    scanf("%d", &n);
    a = (int*)malloc(n*sizeof(int));
    for (int i = 0; i<n; i++)
        a[i] = rand() % 201 -100; // заполнение массива случайными числами
    for (int i = 0; i<n; i++)
        printf("%3d ", a[i]);
    func(a, n);
    printf("\n");
    for (int i = 0; i<n; i++)
        printf("%3d ", a[i]);
    getchar(); getchar();
    return 0;
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2017, 19:19
Ответы с готовыми решениями:

Заполнить целочисленный двухмерный массив размера NN случайными числами в диапазоне от -100 до 200
1. Заполнить целочисленный двухмерный массив размера NN случайными числами в...

Заполнить массив из 10 элементов случайными числами в интервале [0..100] и отсортировать его по последней цифре
Заполнить массив из 10 элементов случайными числами в интервале и...

Заполнить двумерный массив случайными числами от 10 до 100 и определить номер строки в котором эта сумма максимальна
Задача на C

Заполнить массив из 100 ячеек случайными целыми числами от 1 до 24 и определить сумму всех его четных чисел
Поммогитее

Как заполнить массив из 20 элементов случайными числами в диапазоне [0.99]?
Массив заполняется числами 0-20 #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt;...

3
DonSangre
12 / 12 / 16
Регистрация: 18.05.2017
Сообщений: 45
18.05.2017, 20:48 2
Если следовать строго примеру, то получается примерно так.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
 
int sort(int *mas,int N)
{
    int temp;
    for(int i = 0; i < N/2; i++)
    {
        temp = mas[N - 1 - i];
        mas[N - 1 - i] = mas[i];
        mas[i] = temp;
    }
}
 
int main()
{
    srand(time(NULL));
    int *mas, N;
    printf("Number of elements - ");
    scanf("%d",&N);
    mas = (int *)malloc(N*sizeof(int));
    
    for(int i = 0; i < N; i++)
        mas[i] = rand() % 201 - 100;
    
    printf("Before: ");
    for(int i = 0; i < N; i++)
        printf("%d ",mas[i]);
    
    sort(mas,N);
    
    printf("\nAfter: ");
    for(int i = 0; i < N; i++)
        printf("%d ",mas[i]);
}
0
notorious174
0 / 0 / 0
Регистрация: 25.12.2016
Сообщений: 32
19.05.2017, 21:41  [ТС] 3
аргумент: преобразование "time_t" в "unsigned int", возможна потеря данных
sort: должна возвращать значение
ошибки выскакивают
0
DonSangre
12 / 12 / 16
Регистрация: 18.05.2017
Сообщений: 45
20.05.2017, 01:51 4
Лучший ответ Сообщение было отмечено notorious174 как решение

Решение

Это же вроде не ошибки, а предупреждения и все. Насчет потери данных. Это, видимо, ругается на вот эту строку - srand(time(NULL)). Ее можно так заменить - srand( (unsigned int) time(NULL) ). Тогда предупреждение пропадет. А насчет возвращения значения, то в конец функции sort можно добавить return 0. И вообще, если вы скомпилируете свой пример, то он выведет те же предупреждения. Код будет выглядеть так тогда:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
 
int sort(int *mas,int N)
{
    int temp;
    for(int i = 0; i < N/2; i++)
    {
        temp = mas[N - 1 - i];
        mas[N - 1 - i] = mas[i];
        mas[i] = temp;
    }
    return 0;
}
 
int main()
{
    srand( (unsigned int) time(NULL));
    int *mas, N;
    printf("Number of elements - ");
    scanf("%d",&N);
    mas = (int *)malloc(N*sizeof(int));
    
    for(int i = 0; i < N; i++)
        mas[i] = rand() % 201 - 100;
    
    printf("Before: ");
    for(int i = 0; i < N; i++)
        printf("%d ",mas[i]);
    
    sort(mas,N);
    
    printf("\nAfter: ");
    for(int i = 0; i < N; i++)
        printf("%d ",mas[i]);
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2017, 01:51

Создать массив из 200 элементов и заполнить его случайными числами в диапазоне от 40 до 200
Помогите пожалуйста. Спасибо заранее.

Заполнить массив случайными числами
Есть указатель на динамический массив. Нужно заполнить массив случайными...

Заполнить массив случайными числами
Программа с массивом крушится или зависает намертво Программа генерирует...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru