М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
marcidus3Marcidus3
marcidus3Marcidus3
24.07.2021 06:03 •  Информатика

По с++ преподаватель пишет, что программа не соответствует "функции вводится последовательность из n целых чисел. найти среднее арифметическое его цифр." в документе ворд код и тут оставлю: // f1.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include using namespace std; bool pr ( int& s , int& i) { bool p = true; int n , a; cout < < "n = "; while (cin > > n) { for ( a = 2 ; a< =n ; a++) { if ((n%a ! = 0) || (n == 2)) { cout < < "простое" < < endl < < endl; s=s+n; i=i+1; } else { p=false; cout < < "не простое" < < endl < < endl; } break; } } return p; } float arif (int s , int i) { cout < < i < < endl; cout < < s < < endl; return ( s/i ); } int _tmain(int argc, _tchar* { setlocale (lc_all , "rus"); int s=0 , i=0; bool p = pr (s ,i); if (p=true) cout < < "среднее арифметическое = " < < arif ( s , i ); system ("pause"); return 0; }

👇
Ответ:
adonda994
adonda994
24.07.2021

/*Код соответствует тексту задания из файла. Последовательность вводится в строку через знаки пробела, нажатие клавиши Enter заканчивает ввод последовательности. Программа НЕ проверяет корректность введенных данных*/

#include <iostream>

bool is_prime(const int n);

int main(int argc, char* argv[])

{

   int numb, n_of_pr_numb = 0;

   long int sum = 0;

   do

    {

       std::cin >> numb;

       if(is_prime(numb))

       {

           sum += numb;

           n_of_pr_numb++;

       }

   } while (std::cin.peek() != '\n');

   std::cout << "The arithmetic mean: " << (n_of_pr_numb == 0 ? 0 : sum * 1. / n_of_pr_numb);

}

bool is_prime(const int n)

{

   if (n <= 1)

   {

       return false;

   }

   for (int i = 2; i <= pow(n, 1/2); i++)

   {

       if (n % i == 0)

       {

           return false;  

       }

   }

   return true;

}

Основные ошибки/недочеты Вашей реализации:

В функции pr строка for ( a = 2 ; a<=n ; a++) неверна, т.к. на последнем шаге число всегда будут сравнивать с самим собой, правильно for ( a = 2 ; a<n ; a++). Ну и нет смысла проверять до a=n-1, достаточно проверить до √n(об этом есть целая теорема).По условию никакого вывода слов "Простое/Не простое" не требуетсяСтрока cout << "n = "; лишняя, т.к. даже если на ввод будет подано несколько чисел, на экран "n = " будет выведено лишь в начале. Лучше уточнить для пользователя формат ввода.Смысл функции arif неясен, она выводит на консоль какие-то непонятные пользователю данные, затем возвращает s/i[ВНИМАНИЕ! Так как s и i целочисленные, то s/i не является средним арифметическим, это будет лишь целая часть от него. Правильнее s * 1./i или static_cast<double>(s)/i], а затем выводит это значение. Зачем разрывать cout на две функции - неясноВвод данных не должен находиться в функции проверки числа на простоту(да и смысл разбиения программы на функции пропадает)
4,4(25 оценок)
Открыть все ответы
Ответ:
зынзын
зынзын
24.07.2021

1. Образовательные:

сформировать представления о назначении и принципах построения локальных компьютерных сетей;

сформировать знания о составе и основах функционирования локальных компьютерных сетей;

2. Развивающие:

развить познавательные и творческие учащихся;

развить образное мышление;

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

3. Воспитательные:

воспитывать трудолюбие, ответственность за результаты своего труда:

воспитывать культуру делового общения при совместной работе в группе;

воспитывать доброжелательность среди учащихся, нацеленность на результативность обучения.

4,5(22 оценок)
Ответ:
olegmuslimov778
olegmuslimov778
24.07.2021

На вход программе дается целое число n — количество запланированных звонков (1 ≤ n ≤ 2·105). На следующей строке вводятся через пробел n целых чисел Pi, обозначающие прибыли от звонков (0 ≤ Pi ≤ 1 000). Затем вводятся n+1 целых чисел Aj, обозначающие, сколько звонков можно будет провести после подзарядки (0 ≤ Aj ≤ 106).

Выходные данные

Выведите два числа, первое — это максимальная выгода, которую может получить бизнесмен, второе — количество пропущенных первых звонков, при котором она получается (0, если выгоднее всего не заряжать телефон вовсе).

Примеры тестов

входные данные

5

1 2 0 4 1

2 0 8 3 5 6

выходные данные

5 3

Примечание

Рассмотрим пример из условия: n = 5, P1 = 1, P2 = 2, P3 = 0, P4 = 4, P5 = 1, A0 = 2, A1 = 0, A2 = 8, A3 = 3, A4 = 5, A5 = 6.

Если бизнесмен не будет заряжать телефон, то результат будет равен P1 + P2 = 1 + 2 = 3 рубля. Если предприниматель будет заряжать телефон вместо первого звонка, то он не сможет позвонить ни разу, так как A1 = 0. Если вместо первых двух звонков, то результат составит P3 + P4 + P5 = 0 + 4 + 1 = 5 рублей. Если вместо первых трех, то P4 + P5 = 4 + 1 = 5. Если вместо четырёх звонков, то P5 = 1 рубль. Наконец, если бизнесмен будет заряжать телефон вместо всех n = 5 звонков, то он заведомо ничего не получит. Таким образом, два лучших варианта — это заряжать либо вместо 2 первых звонков, либо вместо 3, в обоих случаях получаем 5 рублей прибыли. По условию, из них мы выбираем выбираем вариант с 3 пропущенными звонками.

Программа С++

4,4(39 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ