Вывести на печать элементы массива, значения которых не принадлежат промежутку - C (СИ)

Узнай цену своей работы

Формулировка задачи:

найдите ошибку. 3.В одномерном массиве, состоящем из вещественных элементов, вычислить: А) вывести на печать элементы массива, значения которых не принадлежат промежутку [ ]. Значения задавать с клавиатуры. Б) количество элементов массива, не меньших заданного элемента С, значение С вводить с клавиатуры. В) Заменить все положительные элементы массива их квадратами. Вот что у меня:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{ int n,i,k,j; float a,b,c;
    k=0; j=0;
    printf("Vvedite razmernost` massiva:\n");
    scanf("%d",&n);
    float*mas=(float*)malloc(sizeof(float)*n);
    srand(time(NULL));
    for (i=0;i<=n-1;i++)
        mas[i]=(rand()%100)/(rand()%50+1.);
 
    for (i=0;i<=n-1;i++)
       printf("%.3f\n", mas[i]);
 
    printf("Vvedite nizgney granicy:\n"); /*Задание А */
    scanf("%f", &a);
    printf("Vvedite verhnyy granicy:\n");
    scanf("%f", &b);
    printf("Znachenia ne prinadlezhashie promezhutky:\n");
   for (i=0;i<n;i++)
   {
       if ((mas[i]<=a)&&(mas[i]>=b))
       {
          printf("%.3f\n", mas[i]);
       }
   }
 
   for (i=0;i<=n-1;i++)
    {
        if ((mas[i]>=a)&&(mas[i]<=b))
        {
            k++;
        }
 
    }
    if (k==n) printf("Net znacheniy\n");

printf("Vvedite C:\n"); /*Задание B */
scanf("%f", &c);
for (i=0;i<n;i++)
{
    if (mas[i]>=c)
       j++;
}
printf("Kollvo elementov,ne menshih c: \n");
printf("%d\n\n", j);
 
for (i=0;i<n;i++) /*Задание C */
{
    if (mas[i]>0) mas[i]=mas[i]*mas[i];
}
for (i=0;i<n;i++)
{
    printf("%.3f\n", mas[i]);
}

free(mas);
return 0;
 
}

Решение задачи: «Вывести на печать элементы массива, значения которых не принадлежат промежутку»

textual
Листинг программы
printf("Znachenia ne prinadlezhashie promezhutky:\n");
for (i=0;i<n;i++)
{
if ((mas[i]<=a)&&(mas[i]>=b))// как вы себе представляете число одновременно меньше нижней границы и одновременно больше верхней границы (меняйте здесь && на ||. И <= на < , >= на >)
{
printf("%.3f\n", mas[i]);
}
}

Объяснение кода листинга программы

  1. printf(Znachenia ne prinadlezhashie promezhutky:\n); - Выводится на печать заголовок Значения не принадлежащие промежутку
  2. for (i=0;i<n;i++) - Запускается цикл по всем элементам массива
  3. if ((mas[i]<=a)&&(mas[i]>=b)) - Проверяется условие, что значение элемента меньше верхней границы и больше нижней границы
  4. printf(%.3f\n, mas[i]); - Выводится на печать значение элемента, удовлетворяющего условию, в формате с плавающей точкой (до 3 знаков после запятой)
  5. Код выведет значения элементов массива, которые одновременно меньше нижней границы и больше верхней границы

Оцени полезность:

13   голосов , оценка 3.923 из 5
Похожие ответы