Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 11.05.2011
Сообщений: 30
1

Найти сумму элементов массива, расположенных после минимального элемента

29.06.2011, 08:24. Показов 2108. Ответов 24
Метки нет (Все метки)

Найти сумму элементов массива, расположенных после минимального элемента.Упорядочить элементы массива по возрастанию модулей элементов.
Вот я составила алгоритм решения задачи:
1. Задаем размерность массива (n), присваиваем элементам minn и s нулевые значения.
2. В цикле от i=0, пока i<n с шагом i=i+1 вводим массив, присваиваем переменной minz значение A[0].
3. В цикле от i=0, пока i<n с шагом i=i+1 сравниваем каждый элемент массива с minz, если элемент меньше, то его значение присваивается переменной minz, а его номер переменной minn.
4. В цикле от i=minn+1, пока i<n с шагом i=i+1 считаем сумму (s) элементов массива, расположенных после minz.
5. В цикле от i=0, пока i<n с шагом i=i+1 присваиваем переменной A[i] значение её модуля.
6. В цикле от i=0, пока i<n с шагом i=i+1 производим сортировку элементов массива по возрастанию
методом "пузырька". И в этом же цикле выводим этот массив на экран.
А как написать листинг программы на языке C:


Добавлено через 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
void main()
{
    int minn,i,n,j;
    float A[10];
    float minz,s,x;
    printf("vvedite razmer ");
    scanf("%i", &n);
    minn=0;
    s=0;
    printf("vvedite massiv ");
    for (i=0;i<n;i++)
        scanf("%f", &A[i]);
    minz=A[0];
    for (i=0;i<n;i++)
    {
        if (A[i]<minz)
        {
            minz=A[i];
            minn=i;
        }
    }
    for (i=minn+1; i<n; i++)
        s=s+A[i];
    for (i=0;i<n;i++)
        A[i]=fabs(A[i]);
for (i=0;i<n;i++)
{
    for (j=n-1;j>i; j--)
    {
        if (A[j-1]>A[j])
        {
            x=A[j-1];
            A[j-1]=A[j];
            A[j]=x;
        }
    }
    printf("massiv= %f\n", A[j]);
}
printf("summa = %f\n",s);
getch();
}
Добавлено через 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
void main()
{
    int minn,i,n,j;
    float A[10];
    float minz,s,x;
    printf("vvedite razmer ");
    scanf("%i", &n);
    minn=0;
    s=0;
    printf("vvedite massiv ");
    for (i=0;i<n;i++)
        scanf("%f", &A[i]);
    minz=A[0];
    for (i=0;i<n;i++)
    {
        if (A[i]<minz)
        {
            minz=A[i];
            minn=i;
        }
    }
    for (i=minn+1; i<n; i++)
        s=s+A[i];
    for (i=0;i<n;i++)
        A[i]=fabs(A[i]);
for (i=0;i<n;i++)
{
    for (j=n-1;j>i; j--)
    {
        if (A[j-1]>A[j])
        {
            x=A[j-1];
            A[j-1]=A[j];
            A[j]=x;
        }
    }
    printf("massiv= %f\n", A[j]);
}
printf("summa = %f\n",s);
getch();
}
Добавлено через 1 минуту
Помогите пожалуйста.Что означает в моей программе minn и minz?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.06.2011, 08:24
Ответы с готовыми решениями:

Найти сумму элементов массива, расположенных после минимального элемента
Написать программу по оброботке одномерных массивов в соответствии с вариантом задания (см....

Найти сумму модулей элементов массива, расположенных после минимального элемента
Помогите исправить ошибки #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; int main()...

Найти сумму модулей элементов массива, расположенных после минимального по модулю элемента
Помогите, пожалуйста, решить задачу. В одномерном массиве, состоящем из n вводимых с клавиатуры...

Найти сумму модулей элементов массива, расположенных после минимального по модулю элемента
Написал код, который все не правильно делает(проверял по калькулятору) посмотрите и укажите ошибки...

24
В вечном поиске...
275 / 235 / 30
Регистрация: 05.04.2011
Сообщений: 645
29.06.2011, 09:10 2
minz у тебя минимальный элемент, а minn его индекс. В 27 строке ты уже бежишь по циклу после ентого самого элемента, дабы суммировать элементы стоящие после минимального.

Добавлено через 31 минуту

Не по теме:

Как то не заметил, вы составили алгоритм решения этой задачи где все подробно расписали и даже сразу решили ее. Потом спрашиваете и так очевидные вещи, признались бы сразу что это не вы решали и хотите пояснений?

0
382 / 330 / 159
Регистрация: 06.12.2010
Сообщений: 894
29.06.2011, 09:17 3
Цитата Сообщение от POMIDORKA Посмотреть сообщение
void main()
вот кто такому учит?
1
В вечном поиске...
275 / 235 / 30
Регистрация: 05.04.2011
Сообщений: 645
29.06.2011, 09:21 4
Цитата Сообщение от Daemon025 Посмотреть сообщение
вот кто такому учит?
Енто он для того, чтобы компайлер не выводил предупреждение типа: Function should return a value
0
1 / 1 / 0
Регистрация: 11.05.2011
Сообщений: 30
29.06.2011, 11:25  [ТС] 5
А можете помочь?
Как найти в каждой строке матрицы минимальный и максимальный элементы и поместить их на место первого и последнего элемента строки соответственно. И матрицу напечатать в общепринятом виде.
0
Кошковед
518 / 506 / 63
Регистрация: 12.04.2010
Сообщений: 1,391
29.06.2011, 11:33 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int tmp;
for (int i = 0; i < n; i ++)
{
    jmin = 0;
    jmax = 0;
    for (int j = 0; j < m; j++)
    {
        if ( matr[i][jmin] > matr[i][j] ) jmin = j;
        if ( matr[i][jmax] < matr[i][j] ) jmax = j;
    }
    tmp = matr[i][jmin];
    matr[i][jmin] = matr[i][0];
    matr[i][0] = tmp;
    tmp = matr[i][jmax];
    matr[i][jmax] = matr[i][m-1];
    matr[i][m-1] = tmp;
}
Добавлено через 2 минуты
надеюсь дальше сами.
n,m - размеры матрицы.
tmp - временный контейнер, что б не потерять данные во время перемены положения элементов
0
1 / 1 / 0
Регистрация: 11.05.2011
Сообщений: 30
29.06.2011, 11:53  [ТС] 7
C
1
2
3
4
5
6
7
8
{
if (A[i][j]>max)
max=A[i][j];
else
{
if (A[i][j]<min)
min=A[i][j];
}
Добавлено через 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
 
void main()
{
    int A[10][10];
    int i,j,n,k,max,min;
    printf("vvedite chislo strok ");
    scanf("%i", &n);
    printf("vvedite chislo stolbcov");
    scanf("%i", &k);
    for (i=0;i<n;i++)
    {
        for (j=0;j<k;j++)
        {
            printf("vvedite massiv");
            scanf("%i", &A[i][j]);
        }
    }
    for(i=0;i<n;i++)
    {
        max=A[i][0];
        min=A[i][0];
        for (j=0; j<k;j++)
        {
            if (A[i][j]>max)
                max=A[i][j];
            else
            {
                if (A[i][j]<min)
                    min=A[i][j];
        }
    }
    A[i][0]=min;
    A[i][k-1]=max;
}
for(i=0;i<n;i++)
{
    for (j=0; j<k; j++)
    {
        printf(" %i", A[i][j]);
    }
    printf("\n");
}
getch();
}
0
Кошковед
518 / 506 / 63
Регистрация: 12.04.2010
Сообщений: 1,391
29.06.2011, 11:58 8
понятия не имею.
почему матрица сразу 10,10?
зачем было убирать из моего куска перестановку элементов и менять на замещение? В каждой строке будет по 2 минимума и максимума ( если они конечно же не сразу стоят на нулевой и последней позициях соответственно)
есть код, есть результат работы кода. там уже не мне решать такой он или нет
1
1 / 1 / 0
Регистрация: 11.05.2011
Сообщений: 30
29.06.2011, 12:00  [ТС] 9
Извини, я не понимаю, как тогда?если не трудно, напиши пожалуйста программу.Буду благодарна.
0
Кошковед
518 / 506 / 63
Регистрация: 12.04.2010
Сообщений: 1,391
29.06.2011, 12:04 10
да и оставь как есть. сдать то сдашь наверняка.
работает как надо?
0
1 / 1 / 0
Регистрация: 11.05.2011
Сообщений: 30
29.06.2011, 12:06  [ТС] 11
Прога сама работает,мне интересно просто очень твоя программа.я сама не знаю, что такое tmp. и как он используется?
0
В вечном поиске...
275 / 235 / 30
Регистрация: 05.04.2011
Сообщений: 645
29.06.2011, 12:08 12
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Так, разжевали уже? ну ладно я положу в рот
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
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#define n 5
#define m 6
main()
{
    int matr[n][m];
    int i,j,jmin,jmax,tmp;
    srand(time(NULL));
    printf("Ishodnaya matrica:\n\n");
    for(i = 0; i < n; i ++)
     { for (j = 0; j < m; j++)
       { matr[i][j]=rand()%50;
         printf(" %2i",matr[i][j]);
       }
      printf("\n\n");
     }
    for (i = 0; i < n; i ++)
     {
        jmin = 0;
        jmax = 0;
        for (j = 0; j < m; j++)
        {
                if ( matr[i][jmin] > matr[i][j] ) jmin = j;
                if ( matr[i][jmax] < matr[i][j] ) jmax = j;
        }
        tmp = matr[i][jmin];
        matr[i][jmin] = matr[i][0];
        matr[i][0] = tmp;
        tmp = matr[i][jmax];
        matr[i][jmax] = matr[i][m-1];
        matr[i][m-1] = tmp;
     }
    printf("Izmenennaya matrica:\n\n");
    for(i = 0; i < n; i ++)
     { for (j = 0; j < m; j++)
       { printf(" %2i",matr[i][j]);
       }
      printf("\n\n");
     }
system("pause");
}
2
1 / 1 / 0
Регистрация: 11.05.2011
Сообщений: 30
29.06.2011, 12:10  [ТС] 13
не напишешь?

Добавлено через 14 секунд


Добавлено через 52 секунды
не напишешь?
0
Кошковед
518 / 506 / 63
Регистрация: 12.04.2010
Сообщений: 1,391
29.06.2011, 12:11 14
tmp - лишь имя переменной.

для перестановки a и b:
tmp = b;
b = a;
a = tmp ;
1
1 / 1 / 0
Регистрация: 11.05.2011
Сообщений: 30
29.06.2011, 12:13  [ТС] 15
а можно на C?
0
Кошковед
518 / 506 / 63
Регистрация: 12.04.2010
Сообщений: 1,391
29.06.2011, 12:15 16
вон несколько выше написан код на С уже со всеми вставками.
только с рандомом и размер указывается ручками
0
1 / 1 / 0
Регистрация: 11.05.2011
Сообщений: 30
29.06.2011, 12:17  [ТС] 17
хмммм.......это ж на C++?
а почему main а не void main?
0
Кошковед
518 / 506 / 63
Регистрация: 12.04.2010
Сообщений: 1,391
29.06.2011, 12:17 18
вот тут хз.
по-хорошему надо делать int main() { ...... return 0; }, а не void main() {...}
0
1 / 1 / 0
Регистрация: 11.05.2011
Сообщений: 30
29.06.2011, 12:18  [ТС] 19
и что означает %50?
и "%2i"?
0
В вечном поиске...
275 / 235 / 30
Регистрация: 05.04.2011
Сообщений: 645
29.06.2011, 12:22 20
POMIDORKA, tmp - это промежуточная переменная, допустим у нас в каждой руке есть два арбуза, один большой и один маленький. И так как одна рука у нас устала нам хочется их поменять местами, но просто так мы их не переставим, один арбуз может упасть! Для этого берем столик и ставим туда большой арбуз(хотя без разницы), берем на другую руку маленький и потом поднимаем большой. Все! Задача решена!
В качестве пп у нас в роли играет "столик", а в программе "temp". Обьяснил как мне когда-то обьясняли. Ух, долго писал

Добавлено через 1 минуту
Цитата Сообщение от POMIDORKA Посмотреть сообщение
и что означает %50?
Рандомные числа от 0 до 50

Добавлено через 1 минуту
Цитата Сообщение от POMIDORKA Посмотреть сообщение
и "%2i"?
Это просто для красоты, чтобы все элементы в ряд стояли

Добавлено через 31 секунду
Можете 2-ку убрать, тогда некрасиво будет!
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.06.2011, 12:22

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Высчитать сумму элементов массива, расположенных после минимального элемента
Создать программу для работы с одномерным массивом, в котором высчитывается сумма элементов,...

Вычислить сумму четных элементов, расположенных после минимального элемента массива
Вычислить сумму четных элементов, расположенных после минимального элемента массива напишите на...

Вычислить сумму модулей элементов массива расположенных после минимального по модулю элемента
в одномерном массиве, состоящем из п вещественных элементов, вычислить: 1) количество...

Найти сумму элементов массива, расположенных до минимального элемента массива
В одномерном массиве n вещественных элементов. вычислить: -произведение положительных элементов...


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

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

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