Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
Intelligent12
0 / 0 / 0
Регистрация: 10.10.2014
Сообщений: 18
Завершенные тесты: 1
#1

Массив: инициализировать, найти сумму, произведение по условию - C (СИ)

05.01.2015, 00:00. Просмотров 308. Ответов 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
48
49
#include <stdio.h>
 
int main()
{int i,max,min,sum,pr,a,b,k; 
sum=0;
pr=1;
min=1000;
max=-1000;
printf("Vvedi razmer massiva ");
scanf("%d",&k);
int mas[k];
 
printf("Vvedi massive: ");
for (i=0;i<k;i++)
scanf("%d",&mas[i]);
 
printf("\nSmotri massive: ");
for (i=0;i<k;i++)
printf(" %d ",mas[i]);
 
for (i=0;i<k;i++)
{if (mas[i]<0)
sum=sum+mas[i];
}
printf("\nSumma oticatelnyh chisel = %d",sum);
 
for(i=0;i<k;i++)
{if (mas[i]>max)
{a=i;
max=mas[i];
}
if(mas[i]<min)
{b=i;
min=mas[i];
}
}
if(a>b)
{for(i=b+1;i<a;i++)
pr=pr*mas[i];
}
 
if (b>a)
{for(i=a+1;i<b;i++)
pr=pr*mas[i];
}
printf("\nProizvedenie mezhdu max & min znacheniyami massiva = %d",pr);
 
 
}

но попросили написать в несколько функций.

Написал программу, вроде разложил все по полочкам.
Кликните здесь для просмотра всего текста
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <stdio.h>
#define nn 20
 
void install (int mas[], int l);
void summa (int mas[],int s, int l );
void proizvedenie(int mas[] ,int min, int max, int pr, int l );
void print (int pr, int s);
 
int main ()
    {
        int mas[nn],l,s,min,max,pr ;
        install(mas,l);
        summa(mas,s,l);
        proizvedenie (mas,max,min,pr,l);
        print (s,pr);
        
    }
 
void install (int mas[], int l)
    {
        printf("Vvedi razmer massiva ");
        scanf("%d",&l);
        
        printf("Vvedi massive: ");
            for (int i=0;i<l;i++)
                scanf("%d",&mas[i]);
    }
 
void summa (int s, int l, int mas[])
    {
        for (int i=0; i<l; i++)
            {
                if (mas[i]<0)
                    {
                        s+=mas[i];
                    }
            }
    }   
 
void proizvedenie (int min, int max, int pr, int l, int mas[])  
    {
        for (int i=1; i<l; i++) // îïðåäåëåГ*ГЁГї ГЁГ*äåêñГ* Г¬Г*ГЄГ± ГЁ ìèГ* ýëåìåГ*òîâ
            { 
                if (mas[i]<mas[i-1])
                {
                    min=i;
                }
                else
                {
                    max=i;
                }
            }
        
        pr=1;
        
        if (min<max)
        {
            for (int i=min+1; i<max;i++)
                pr*=mas[i];
        }
        else
        {
            if (min>max)
                {
                    for (int i=max+1; i<min;i++)
                        pr*=mas[i];
                }
        
        }
    }
    
void print (int pr, int s)
{
    printf("\nSumma oticatelnyh chisel = %d",s);
    printf("\nProizvedenie mezhdu max & min znacheniyami massiva = %d",pr);
}


Начало ругаться на массив при объявлении.
Подскажите что не так и нужно ли здесь использовать указатели.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2015, 00:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив: инициализировать, найти сумму, произведение по условию (C (СИ)):

Массив: найти произведение элементов с четными номерами, сумму элементов между нулевыми - C (СИ)
Доброго времени суток, форумчане :) Прошу помочь с программами на turbo с ) В одномерном массиве, состоящем из п целочисленных...

Ввести массив. Вывести его. Найти сумму элементов на четных позициях и произведение на нечетных позициях - C (СИ)
Помогите пожалуйста решить. ввести массив. Вывести его. Найти сумму элементов на четных позициях и произведение на нечетных позициях.

Найти сумму чисел в интервале по условию - C (СИ)
Условие : подсчитайте сумму тех целых положительных чисел из интервала от n до m, которые кратны k. Значения n,m и k должны вводиться м...

Найти сумму компонент вектора X, удовлетворяющих заданному условию - C (СИ)
Найти сумму компонент вектора X, удовлетворяющих условию 2&lt;Xi&lt;5. Дано, что X=(2.07, 4.02, 8, 1, -8, 5, 3).

Найти сумму и произведение четных чисел от 1 до n - C (СИ)
Задание: Найти сумму S и произведение P четных чисел от 1 до n.

Массив: Посчитать сумму положительных элементов выше главной диагонали и произведение ниже - C (СИ)
Матрица 7*7 посчитать сумму положительных элем. располож. выше главной диагонали и произведение расположенных ниже эл. Найти мин элемент...

1
tnk500
113 / 117 / 25
Регистрация: 25.08.2012
Сообщений: 1,293
Завершенные тесты: 3
05.01.2015, 00:28 #2
Intelligent12, посмотри на прототип функции summa() и proisvedenie(), затем на их реализацию. Ничего странного не видишь? И как функция print() будет работать, если ее аргументы не инициализированы? Да к тому же порядок аргументов опять спутан ("тьфу ты, проговорился!"). Честно говоря, странно что твоя первая программа вообще работала, как минимум, она должна была пожаловаться на неконстантный размер массива.

Кстати, а причем тут С++?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2015, 00:28
Привет! Вот еще темы с ответами:

Найти сумму и произведение всех элементов массива - C (СИ)
Всего 4 задачи,две из них решил и две не могу(на обычном С),буду очень благодарен за помощь. 1. Ввести массив вещественных чисел размером...

Найти сумму чисел, разность, произведение и частное - C (СИ)
1. Даны два ненулевых числа. Найти их сумму, разность, произведение и частное. 7. Из трех данных чисел выбрать наименьшее. Begin44....

Найти произведение, сумму и количество отрицательных элементов массива - C (СИ)
Привет)) Заполнить матрицу m*n с клавиатуры. Найти произведение,сумму и количество отрицательных элементов массива. Спасибо:*

Найти сумму и произведение элементов K-й строки заданной матрицы - C (СИ)
Дана матрица размера M х N и целое число K(1&lt; K&lt; M). Найти сумму и произведение элементов K-й строки данной матрицы. на Си


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

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

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