Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 07.12.2012
Сообщений: 11
1

Заполнить массив случайными числами, посчитать максимальную разность между 2 соседними величинами

07.12.2012, 21:22. Показов 1249. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
очень нужно,завтра модуль закрывать,а это решающее задание,кину на счет денег или как-то по-другому,в общем в обиде не оставлю!!!

Короче задание такое: Заполнить массив случайными числами,посчитать максимальную разность между 2 соседними величинами.
Если можно,то как можно короче код,а то мы только начали Си проходить и будет палево.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2012, 21:22
Ответы с готовыми решениями:

Заполнить массив случайными числами и посчитать среднее геометрическое
Суть такова:Заполнить массив случайными числами и посчитать среднее геометрическое. Очень срочно...

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

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

Двумерный массив заполнить случайными числами.
Прошу прощения, но сам понять что-то никак. Никогда не был силён в информатике. Необходим двумерный...

12
0 / 0 / 0
Регистрация: 17.11.2012
Сообщений: 21
08.12.2012, 00:13 2
Посмотри это... "обиде не оставлю" я оставляю на твоё усмотрение...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
#include<stdlib.h>
#define N 10
void main()
{
    int arr[N],i,max;
    printf("Your array is:  ");
    for(i=0;i<N;i++)
    {
        arr[i]=rand() % 200 - 100;
        printf("%d ",arr[i]);
    }
    max=arr[1]-arr[0];
    for(i=1;i<N;i++)
    {
        if((arr[i+1]-arr[i])>max)
            max=arr[i+1]-arr[i];
    }
    printf("\n");
    printf("The max difference is ==> %d\n",max);
}
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
08.12.2012, 06:30 3
см комментарии:
Цитата Сообщение от Qeing Посмотреть сообщение
f
C
1
2
3
4
5
or(i=1;i<N;i++)
 {
 if((arr[i+1]-arr[i])>max)//arr[i+1] - выход за границы массива
 max=arr[i+1]-arr[i];
 }
0
0 / 0 / 0
Регистрация: 17.11.2012
Сообщений: 21
08.12.2012, 08:10 4
C
1
2
3
4
5
for(i=1;i<[B](N-1)[/B];i++)
 {
 if((arr[i+1]-arr[i])>max)//arr[i+1] - выход за границы массива
 max=arr[i+1]-arr[i];
 }
Добавлено через 35 минут
C
1
2
3
4
5
for(i=1;i<(N-1);i++) <--- Правка N-1
 {
 if((arr[i+1]-arr[i])>max)//arr[i+1] - выход за границы массива
 max=arr[i+1]-arr[i];
 }
0
0 / 0 / 0
Регистрация: 07.12.2012
Сообщений: 11
08.12.2012, 09:01  [ТС] 5
прогу скомпилировал,но при попытке запуска,она закрывается
компилятор выдает вот такую фигню
C:\Users\Илья\Desktop\gcc\bin\gcc.c In function `main':
C:\Users\Илья\Desktop\gcc\bin\gcc.c [Warning] return type of 'main' is not `int'

Добавлено через 16 минут
все,вроде кое какие недочеты убрал,но каждый раз при после компиляции,при нажатии "Run" у меня черное окно открывается и закрывается. Но при нажатии "Show Console Window" оно остается на месте,но прога выдает одни и те же числа:"Your array is : -59 -39 34 0 69 24 -22 58 62 -36
The max difference is ==> 80
Как это исправить?
0
577 / 256 / 18
Регистрация: 29.11.2010
Сообщений: 868
08.12.2012, 12:14 6
Цитата Сообщение от balamyt99 Посмотреть сообщение
прога выдает одни и те же числа
C
1
2
#include <time.h>
srand ( time(NULL) );
0
0 / 0 / 0
Регистрация: 07.12.2012
Сообщений: 11
08.12.2012, 13:45  [ТС] 7
ничего не изменилось,прога стала выдавать все те же числа,правда больше

Добавлено через 2 минуты
Цитата Сообщение от valeriikozlov Посмотреть сообщение
см комментарии:


можешь подсказать,как исправить код,чтобы прога выдавала новые числа и не закрывалась?
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
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
#define N 10
void main()
{
    int mas[N],i,max;
    printf("Tvoi massiv:  ");
    for(i=0;i<N;i++)
    {
        mas[i]=rand( time(NULL) );
 
      
        printf("%d ",mas[i]);
    }
    max=mas[1]-mas[0];
    for(i=1;i<(N-1);i++)
    {
        if((mas[i+1]-mas[i])>max)           //mas[i+1] - выход за границы массива
            max=mas[i+1]-mas[i];
    }
    printf("\n");
    printf("Maksimalnaya raznost => %d\n",max);
}
выдает каждый раз одни и теже числа,также закрывается если не нажать "ShowConsoleWindow"
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
08.12.2012, 13:51 8
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
 
#define N 10
void main()
{
    srand ( time(NULL) );
    int arr[N],i,max;
    printf("Your array is:  ");
    for(i=0;i<N;i++)
    {
        arr[i]=rand() % 200 - 100;
        printf("%d ",arr[i]);
    }
    max=arr[1]-arr[0];
  for(i=1;i<(N-1);i++) //<--- Правка N-1
 {
 if((arr[i+1]-arr[i])>max)//arr[i+1] - выход за границы массива
 max=arr[i+1]-arr[i];
 }
    printf("\n");
    printf("The max difference is ==> %d\n",max);
}
0
0 / 0 / 0
Регистрация: 07.12.2012
Сообщений: 11
08.12.2012, 13:56  [ТС] 9
от души,скинь в лс номер телефона,кину на счет

Добавлено через 51 секунду
Цитата Сообщение от valeriikozlov Посмотреть сообщение
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
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
 
#define N 10
void main()
{
    srand ( time(NULL) );
    int arr[N],i,max;
    printf("Your array is:  ");
    for(i=0;i<N;i++)
    {
        arr[i]=rand() % 200 - 100;
        printf("%d ",arr[i]);
    }
    max=arr[1]-arr[0];
  for(i=1;i<(N-1);i++) //<--- Правка N-1
 {
 if((arr[i+1]-arr[i])>max)//arr[i+1] - выход за границы массива
 max=arr[i+1]-arr[i];
 }
    printf("\n");
    printf("The max difference is ==> %d\n",max);
}

огромное спасибо,как мне тебя отблагодарить? на телефон кинуть?
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
08.12.2012, 14:03 10
Цитата Сообщение от balamyt99 Посмотреть сообщение
на телефон кинуть?
не надо
0
0 / 0 / 0
Регистрация: 07.12.2012
Сообщений: 11
08.12.2012, 15:04  [ТС] 11
Цитата Сообщение от valeriikozlov Посмотреть сообщение
не надо
а можно узнать,ради интереса,что нужно изменить в программе,чтобы она считала разность между модулями числами. т.е если у меня есть -50 и 54 ,то разность показал мне 4?
0
577 / 256 / 18
Регистрация: 29.11.2010
Сообщений: 868
08.12.2012, 17:21 12
функция abs()
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
09.12.2012, 00:44 13
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от balamyt99 Посмотреть сообщение
а можно узнать,ради интереса,что нужно изменить в программе,чтобы она считала разность между модулями числами. т.е если у меня есть -50 и 54 ,то разность показал мне 4?
Теперь мне не понятно. По условию:
Цитата Сообщение от balamyt99 Посмотреть сообщение
посчитать максимальную разность между 2 соседними величинами
Так что должно получиться не 4, а 104 или -104 (в зависимости от того что из чего вычитаем).
Если нужен модуль разности, то можно написать так:
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
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
#include <math.h>
#define N 10
void main()
{
    srand ( time(NULL) );
    int arr[N],i,max;
    printf("Your array is:  ");
    for(i=0;i<N;i++)
    {
        arr[i]=rand() % 200 - 100;
        printf("%d ",arr[i]);
    }
    max=abs(arr[1]-arr[0]);
  for(i=1;i<(N-1);i++) //<--- Правка N-1
 {
 if(abs(arr[i+1]-arr[i])>max)//arr[i+1] - выход за границы массива
 max=abs(arr[i+1]-arr[i]);
 }
    printf("\n");
    printf("The max difference is ==> %d\n",max);
}
Если все-таки нужна:
Цитата Сообщение от balamyt99 Посмотреть сообщение
разность между модулями числами
то можно так:
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
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
#include <math.h>
#define N 10
void main()
{
    srand ( time(NULL) );
    int arr[N],i,max;
    printf("Your array is:  ");
    for(i=0;i<N;i++)
    {
        arr[i]=rand() % 200 - 100;
        printf("%d ",arr[i]);
    }
    max=abs(arr[1])-abs(arr[0]);
  for(i=1;i<(N-1);i++) //<--- Правка N-1
 {
 if(abs(arr[i+1])-abs(arr[i])>max)//arr[i+1] - выход за границы массива
 max=abs(arr[i+1])-abs(arr[i]);
 }
    printf("\n");
    printf("The max difference is ==> %d\n",max);
}
0
09.12.2012, 00:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2012, 00:44
Помогаю со студенческими работами здесь

Заполнить массив из N элементов неповторяющимися случайными числами
ПОмогите решить вроде простую задачу, но у меня не получается: Заполнить массив из N элементов...

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

Вместо ввода элементов в массив заполнить его случайными числами
#include &lt;stdio.h&gt; int main() { int a={0}; int b; int j,i; for (i = 0; i &lt; 3; i = i + 1) { ...

Заполнить двумерный массив случайными числами и поменять местами два столбца
Здравствуйте. У меня возникла проблема с двумерным массивом, мне нужно создать двумерный массив...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru