Проверьте пожалуйста код препод сказал, что не верен - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
#include <locale.h>
#define B 5
int main()
{
setlocale(LC_CTYPE, "Russian");
int A[B];
int i,j,a,b;
int max;
int maxIn = 0;
int sum=0;
int count = 0;//переменная счетчика
int x, y;
int temp;
printf("Введем элементы массива\n");
for (int i = 0; i<5; i++)
{
printf("[%i]=", i);
scanf("%i", &A[i]);
}
printf("Укажите интервал\n");
printf("a=");
scanf("%i", &x);
printf("b=");
scanf("%i", &y);
a=A[x],b=A[y];//отрезок a,b
for (i = 0; i<B; i++)
{
if (A[i] < a || A[i] > b)
count++;//сам подсчет
}
printf("Kоличество элементов вне интервала: %i\n", count);
max = A[0];
for ( i = 0; i<B; i++)
{
if (max <= A[i]){
max = A[i];
maxIn = i;
}
}
printf("Максимальный элемент: max=A[%i]=%i\n",maxIn, A[maxIn]);
{
for (i = maxIn + 1; i < B; i++)
{
sum += A[i];
}
printf("sum=%i\n", sum);
}
for (i = 0; i < B - 1; i++)
{
for (j = 0; j < B - 1; j++)
if (A[j] < A[j + 1])
{
temp = A[j + 1];
A[j + 1] = A[j];
A[j] = temp;
}
}
for (i = 0; i<B; i++)
{
printf("%i ", A[i]);
}
return 0;
}
выручайте а-то повесят
особенно то когда задается интервал я задаю числа а необходимо индексы элементов где лежат числа
Решение задачи: «Проверьте пожалуйста код препод сказал, что не верен»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <locale.h>
#define B 5
int main()
{
setlocale(LC_CTYPE, "Russian");
int A[B];
int i,j,a,b;
int max;
int maxIn = 0;
int sum=0;
int count = 0;//переменная счетчика
int x, y;
int temp;
printf("Введем элементы массива\n");
for (int i = 0; i < B; i++)
{
printf("[%d]=", i);
scanf("%d", &A[i]);
}
printf("Укажите интервал\n");
printf("a=");
scanf("%i", &x);
printf("b=");
scanf("%i", &y);
a=A[x],b=A[y];//отрезок a,b
for (i = 0; i<B; i++)
{
if (A[i] < a || A[i] > b)
count++;//сам подсчет
}
printf("Kоличество элементов вне интервала: %d\n", count);
max = abs(A[0]);
for ( i = 0; i<B; i++)
{
if (max <= abs(A[i])){
max = abs(A[i]);
maxIn = i;
}
}
printf("Максимальный элемент: max=A[%d]=%d\n",maxIn, abs(A[maxIn]));
{
for (i = maxIn + 1; i < B; i++)
sum += A[i];
printf("sum=%d\n", sum);
}
for (i = 0; i < B ; i++)
{
for (j = i+1; j < B ; j++)
if (abs(A[i]) < abs(A[j]))
{
temp = A[j];
A[j] = A[i];
A[i] = temp;
}
}
for (i = 0; i<B; i++)
printf("%i ", A[i]);
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем массив A размером B и инициализируем его нулями
- Объявляем переменные i, j, a, b, max, maxIn, sum, count, x, y, temp
- Выводим сообщение и призыв к вводу элементов массива
- Считываем элементы массива с помощью функции scanf
- Задаем интервал с помощью функции scanf
- Определяем отрезок a и b как элементы массива A, соответствующие индексам x и y
- Подсчитываем количество элементов вне интервала с помощью цикла и функции scanf
- Находим максимальный элемент массива A с помощью цикла и функции scanf
- Выводим максимальный элемент массива A и его индекс
- Находим сумму элементов массива A, начиная с элемента, следующего за максимальным, с помощью цикла и функции scanf
- Проводим сортировку массива A методом пузырька
- Выводим отсортированный массив A с помощью цикла и функции scanf
- Возвращаем 0, чтобы указать, что программа успешно завершилась