1 Востаннє редагувалося did_pedro (03.11.2013 18:47:35)

Тема: Допоможіть будь-ласка розв'язати задачу (C++)

Написати програму, яка матиме масив, що матиме 15 значень (int), і виконати наступні дії:
A) Показати числа, які нижчі ніж середнє арифметичне всіх перерахованих значень;
б) Розрахувати кількість чисел, що не перевищує значення, зазначене користувачем;
в) Знайти індекс першого значення, що дорівнює вказаному значенню.
КОЖЕН ПУНКТ ПОВИНЕН БУТИ РОЗРАХОВАНИЙ ЯК ОКРЕМА ПІДПРОГРАМА.

Якщо не було нічого не відповідає Вашим критеріям (у кожному пункті окремо) - вивести відповідне повідомлення.
Прошу надати розв'язок з поясненнями (особливо підпрограми, оскільки написання всього в одній підпрограмі труднощів не викликає).
Буду дуже вдячний за будь-яку допомогу!

2

Re: Допоможіть будь-ласка розв'язати задачу (C++)

300 WMU

3

Re: Допоможіть будь-ласка розв'язати задачу (C++)

250 WMU

4

Re: Допоможіть будь-ласка розв'язати задачу (C++)

http://replace.org.ua/rules/

5 Востаннє редагувалося Ярослав (03.11.2013 19:26:28)

Re: Допоможіть будь-ласка розв'язати задачу (C++)

Я зробив вам одну функцію і детально прокоментував усе, спробуйте розібратись і дві іще зробити самотужки.

/* 
 * File:   main.c
 * Author: YaR
 *
 * Created on November 3, 2013, 6:52 PM
 */

#include <stdio.h>
#include <stdlib.h>

/*
 * 
 */

void aver_func(int [], int); // Попереднє оголошення функції

int main(int argc, char** argv) {
    int i; // Створюємо змінну, яка послугує лічильником для циклу
    int array[14]; // Створюємо масив із п'ятнадцятьма елементами

    printf("Zapovnit masiv\n");
    for(i=0; i<15; i++){ // Цикл, який виконається п'ятнадцять разів
        printf("[%d] = ", i); // Вивід текстового повідомлення
        scanf("%d", &array[i]); // Сканування вводу
    }
    
    printf("Chysla, nyzhchi za seredne arifmetychne vsih chysel masivu:\n");
    aver_func(array, i); // Виклик функції

    return (EXIT_SUCCESS);
}

void aver_func(int arr[], int i){ // Опис функції
    int array_size;
    float average = 0; // Змінна із плаваючою комою
    
    array_size = i; // Збережемо на майбутнє розмір масиву
    while(i > 0){ // Цикл while відбувається доки i більше нуля
        average += arr[--i]; // Операції додавання з використанням поточного
                             // значення і операція декрементування
    }
    average = average / (float) array_size; // Приводимо змінну array_size до
                                            // типу float, щоб виконати звичайне
                                            // ділення на противагу діленню
                                            // із остачею
    while(i < array_size){
        if(arr[i] < average) // Умовний оператор if виконається, якщо
                             // елемент масиву із індексом i буде меншим
                             // ніж значення змінної average
            printf("%d\n", arr[i]);
        i++; // Операція інкрементування
    }
}