Программа запрашивает у пользователя некое положительное число N, затем пользователь N раз вводит число (в диапазоне от 0 до 100) и программа выводит на экран среднее арифметическое значение из введенных На языке C
Первый условно назовем "я - компьютер". Вы превращаетесь в Исполнителя и с железной тупостью выполняете алгоритм - инструкцию за инструкцией, каждый раз выписывая на бумаге результат. Если у Вас много времени и Вы, как и компьютер, не делаете ошибок, то рано или поздно нужный результат будет получен.
Второй назовем "я - человек". Вы напрягаете свой мозг и определяете, что именно делает алгоритм, после чего проводите нужные вычисления. В этом варианте обычно к результату приходят быстрее.
Попробуем второй путь.
Вначале полагаем, что s=0, n=12. Далее следует цикл, в котором i последовательно принимает значения 1, 2, ... 10. s=s+"что-то" говорит нам о том, что в s накапливается некая сумма, для чего s предварительно обнулялось. А что именно накапливается? n-i. При проходах по циклу это будут значения n-1, n-2, ... n-10. У нас n=12, поэтому в s будет накапливаться сумма 11+10+9+...+2. Или, это удобнее записать как 2+3+4+...+9+10+11. Это сумма арифметической прогрессии из 10 членов и ее можно найти по формуле суммы арифметической прогрессии. Если лениво вспоминать формулу, можно просто сложить эти числа. А можно поступить, как поступил в свое время Гаусс: заметить, что 2+11=13, 3+10=13, 4+9=13 и таких пар 5. И найти результат 5×13=65. Такая вот победа мозга над рутиной))) ответ: 65
Відповідь:
#include<stdio.h>
#include<stdlib.h>
int quantity(){
int y;
while(1){
printf("Введите количество элементов:\n");
if(!(scanf("%i",&y))||y<=0){
printf("Неккоректный ввод. Повторите\n");
fflush(stdin);}
else return y;}
}
float middle_arif(int quantity){
float f,sum=0;
int temp;
for(temp=0;temp<quantity;temp++){
while(1){
printf("Введите %i элемент:\n",temp+1);
if(!(scanf("%f",&f))||f<0||f>100){
printf("Неккоректный ввод. Повторите\n");
fflush(stdin);
}
else{
sum+=f;
fflush(stdin);
break;
}
}}
return sum/quantity;}
int main(){
setlocale(0,"");
printf("Среднее арифметическое значений равно %f",middle_arif(quantity()));
return 0;
}