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

Найти максимальное значение массива

16.11.2011, 01:06. Просмотров 1116. Ответов 11
Метки нет (Все метки)

Нужно найти максимальное значение массива arr[10] почему ругается на переменуую m компилятор?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
 
 
int main() 
{
    int arr[10],i, m;
    srand(time(NULL));
    printf("Array: ");
    for(i = 0; i < 10; i++) 
    {
        arr[i] = rand()%100-10;
        printf("%i ",arr[i]);
    }
    for(i = 0; i < 10; i++)
    if(i==0 && m<arr[i])
        m=arr[i];
    printf("%d",m);
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2011, 01:06
Ответы с готовыми решениями:

Найти максимальное значение массива
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;locale.h&gt; #include &lt;math.h&gt; int vvod(int m,...

Найти количество ячеек массива, которым присвоено максимальное значение
Я начинающий и задача простая, с которой я, однако не могу справиться: Найти кол-во ячеек...

Найти все значения y, среди них найти максимальное и среднее значение
y=( cos ^2 (x)/(1+sin(x) ) ) - ln ^2 (x/(x-1)^1/3) одз: (x&lt;0 или x&gt;1) и x&lt;&gt;3pi/2 с клавиатуры...

Максимальное значение char и размерность массива
Привет ребята! Только начал разбираться с C, на досуге просматриваю исходные коды на GitHub и...

Вывести на экран максимальное значение двумерного массива
Вывести на экран максимальное значение двумерного массива (значение и индексы)

11
Net_Wanderer
235 / 208 / 29
Регистрация: 08.06.2011
Сообщений: 467
16.11.2011, 01:10 2
потому что она будучи неинициализированной используется в строке:
C
1
if(i==0 && m<arr[i])
1
slava_g1
73 / 73 / 32
Регистрация: 06.02.2011
Сообщений: 127
16.11.2011, 01:12 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
 
 
int main() 
{
    int arr[10];
    srand(time(NULL));
    printf("Array: ");
    for(int i = 0; i < 10; i++) 
    {
        arr[i] = rand()%100-10;
        printf("%i ",arr[i]);
    }
 
    int m = arr[0];
    for(int i = 0; i < 10; i++){
        if(m<arr[i]){
            m=arr[i];
        }
    }
    printf("%d",m);
    return 0;
}
На m ругаеться потому что вы эту переменную не проинициализировали ! ! ! Должно работать , писал без компилятора !
0
Devil7
0 / 0 / 2
Регистрация: 05.10.2011
Сообщений: 97
16.11.2011, 01:22  [ТС] 4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
 
 
int main() 
{
    int arr[10],i, m=0;
    srand(time(NULL));
    printf("Array: ");
    for(i = 0; i < 10; i++) 
        {
                arr[i] = rand()%100-10;
                printf("%i ",arr[i]);
    }
        for(i = 0; i < 10; i++)
        if(i==0 || m<arr[i])
                m=arr[i];
        printf("%d",m);
        return 0;
}
slava_g1 - все равно не выводит макс значение.
0
16.11.2011, 01:22
amor1k
Студент
148 / 148 / 64
Регистрация: 18.01.2011
Сообщений: 469
16.11.2011, 01:25 5
C
1
m=0
надо присваивать первый элемент массива, и только после реализации массива (то есть заполнения)
1
slava_g1
73 / 73 / 32
Регистрация: 06.02.2011
Сообщений: 127
16.11.2011, 01:25 6
C++
1
if( m > arr[i])
А так?? Раньше искало максимальный !!!
0
Net_Wanderer
235 / 208 / 29
Регистрация: 08.06.2011
Сообщений: 467
16.11.2011, 01:27 7
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
 
 
int main() 
{
    int arr[10],i, m=0;
    srand(time(NULL));
    printf("Array: ");
    for(i = 0; i < 10; i++) 
        {
                arr[i] = rand()%100-10;
                printf("%i ",arr[i]);
    }
        for(i = 0; i < 10; i++)
        if(i==0 || m<arr[i])
                m=arr[i];
        printf("\n%d",m);
        return 0;
}
Цитата Сообщение от amor1k Посмотреть сообщение
надо присваивать первый элемент массива, и только после реализации массива (то есть заполнения)
Цитата Сообщение от Devil7 Посмотреть сообщение
if(i==0 || m<arr[i])
m=arr[i];
на первой итерации цикла, m будет присвоен первый элемент массива
0
slava_g1
73 / 73 / 32
Регистрация: 06.02.2011
Сообщений: 127
16.11.2011, 01:32 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
25
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
 
 
void main() 
{
    int arr[10];
    srand(time(NULL));
    printf("Array: ");
    for(int i = 0; i < 10; i++) 
    {
        arr[i] = rand()%100-10;
        printf("%i ",arr[i]);
    }
    int m = arr[0];
    for(int i = 0; i < 10; i++){
        if( m<arr[i]){
            m=arr[i];
        }
    }
    printf("\n");
    printf("Maximum is %d",m);
    printf("\n");
}
1
amor1k
Студент
148 / 148 / 64
Регистрация: 18.01.2011
Сообщений: 469
16.11.2011, 01:34 9
Цитата Сообщение от Net_Wanderer Посмотреть сообщение
if(i==0 || m<arr[i])
m=arr[i];
сорр, не заметил)
0
Devil7
0 / 0 / 2
Регистрация: 05.10.2011
Сообщений: 97
16.11.2011, 02:25  [ТС] 10
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
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
 
 
int main() 
{
        int arr[10];
        srand(time(NULL));
        printf("Array: ");
        for(int i = 0; i < 10; i++) 
        {
                arr[i] = rand()%100-10;
                printf("%5d ",arr[i]);
        }
 
        int m = arr[0];
        for(int i = 0; i < 10; i++){
                if(m>arr[i]){
                        m=arr[i];
                }
        }
        printf("%d",m);
        return 0;
}
Все равно глухо...

Добавлено через 55 секунд
Блин) Точно. Вот дурак.

Добавлено через 49 минут
А если усложнить задачу? Нашел max и min значения элементов и нужно найти сумму элементов межд у ними. Выдает астрономическое число, очень большое.

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
 
 
int main() 
{
        int arr[10],sum,i;
        srand(time(NULL));
        printf("Array: ");
        for(int i = 0; i < 10; i++) 
        {
                arr[i] = rand()%100-10;
                printf("%5d",arr[i]);
        }
        //Максимальное значение элементов массива//
        printf("\nmax: ");
        int p = arr[0];
        for(int i = 0; i < 10; i++)
        {
                if(p<arr[i])
                {
                        p=arr[i];
                }
        }
        printf("%d",p);
        //Минимальное значение элементов массива//
        printf("\nmin: ");
        int m = arr[0];
        for(int i = 0; i < 10; i++)
        {
                if(m>arr[i])
                {
                        m=arr[i];
                }
        }
        printf("%d",m);
        //Сумма между макс и мин элементами//
        if(p < m)
        {
            sum = 0;
            for( i = p+1; i <= m; i++)
                sum+=arr[i];
            printf("\nSum of array between max and min el-ts = %5d", sum); }
        //Сумма между мин и макс элементами//
        else 
        {
            sum = 0;
            for( i = m+1; i <= p; i++)
                sum+=arr[i];
            printf("\nSum of array between min and max el-ts = %5d", sum); }
        return 0;
}
0
slava_g1
73 / 73 / 32
Регистрация: 06.02.2011
Сообщений: 127
16.11.2011, 08:57 11
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
int main() 
{
    const int SIZE = 10;
    int arr[SIZE];
    srand(time(NULL));
    printf("Array: ");
    for(int i = 0; i < SIZE; i++) 
    {
        arr[i] = rand()%100-10;
        printf("%5d",arr[i]);
    }
    //Максимальное значение элементов массива//
    printf("\nmax: ");
    int max = arr[0];
    int maxPos=0;
    for(int i = 0; i < SIZE; i++)
    {
        if(max<arr[i])
        {
            max=arr[i];
            maxPos=i;//запоминаем позицию максимального значения
        }
    }
    printf("%d",max);
    //Минимальное значение элементов массива//
    printf("\nmin: ");
    int min = arr[0];
    int minPos = 0;
    for(int i = 0; i < SIZE; i++)
    {
        if(min>arr[i])
        {
            min=arr[i];
            minPos=i;//запоминаем позицию минимального значения
        }
    }
    if(minPos>maxPos){ // меняем местами, если нужно для цикла
        int tmp = minPos;
        minPos = maxPos;
        maxPos = tmp;
    }
    printf("%d",min);
    int sum = 0;
    for(int i = minPos; i <= maxPos; i++){
        sum+=arr[i];//Сумируем элементы
    }
    printf("\nSum is : %d \n", sum);
    return 0;
}
1
Devil7
0 / 0 / 2
Регистрация: 05.10.2011
Сообщений: 97
16.11.2011, 12:03  [ТС] 12
Спасибо!
0
16.11.2011, 12:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2011, 12:03

Найти максимальное значение из введенных
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include&lt;iostream&gt; #include&lt;locale.h&gt;...

Минимальное и максимальное значение среди четных элементов массива
Здравствуйте. Задали следующее задание: Найти сумму всех нечетных элементов массива, произведение...

Найти максимальное значение без масива
Есть последовательность с n чисел,а нужно найти максимальное значение числа и его номер,но нужно...


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

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

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