Відповідь:
#include <stdio.h>
#include <locale>
using namespace std;
int main(){
setlocale(LC_ALL , "Rus");
int N,min;
printf("Введите положительное число N: ");
scanf("%d", &N);
int arr[N];
if(N < 1){
printf("Число не положительное или равно нулю");
return 1;
}
for(int i = 0 ; i < N; i++){
printf("Введите число от 0 до 100:");
scanf("%d" , &arr[i]);
if(arr[i] < 0 || arr[i] > 100){
printf("Число не входит в диапазон от 0 до 100");
}
}
for(int i = 0; i < N; i++){
min = arr[0];
if(arr[i] < arr[0]){
min = arr[i];
}
}
printf("Наименьшее число из введенных = %d",min);
return 0;
}
Пояснення:
Відповідь:
#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;
}
1. В заголовке процедуры procedure summ(plus:string;minus:string); параметры plus и minus описаны, как строки. В теле процедуры обоим параметрам присваивается значение, равное соединению строк a и b, а вовсе не сумма чисел и их разность, как требует условие.
2. Поскольку параметры не имеют описателя var, после выхода из процедуры их исходное значение не изменяется.
3. Операторы Readn(b) дважды выполняют присваивание переменной b, а переменная a значения не получает.
4. Вызов процедуры summ неверен, поскольку вместо пары строковых фактических параметров используется вызов процедуры Writen, что синтаксически неверно.