Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2014, 12:43   #1
mital25
Пользователь
 
Регистрация: 06.03.2014
Сообщений: 28
По умолчанию Проверьте пожалуйста код препод сказал, что не верен

выполнил задание написал код с горем попалам а он говорить мол не верно выбирается интервал и то что я изменяю массив а не выбираю его элементы
Код:
#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;
    }
а вот собственно задание

В одномерном массиве, состоящем из N вещественных элементов, вычислить:
1) количество элементов массива, лежащих вне диапазона [ a, b];
2) сумму элементов массива, расположенных после максимального элемента по
модулю;
3) упорядочить элементы массива по убыванию модулей элементов.

Последний раз редактировалось mital25; 16.11.2014 в 12:58.
mital25 вне форума Ответить с цитированием
Старый 16.11.2014, 13:08   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,603
По умолчанию

Диапазон [a,b] чисел какого типа? Индексов массива или чисел? В программе переменным a и b присваиваются значения по введенным индексам в массиве. Изначально, я предполагал, что диапазон чисел, а не индексов.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 16.11.2014, 13:41   #3
mital25
Пользователь
 
Регистрация: 06.03.2014
Сообщений: 28
По умолчанию

Цитата:
Сообщение от challengerr Посмотреть сообщение
Диапазон [a,b] чисел какого типа? Индексов массива или чисел? В программе переменным a и b присваиваются значения по введенным индексам в массиве. Изначально, я предполагал, что диапазон чисел, а не индексов.
все верно диапазон индексов))
mital25 вне форума Ответить с цитированием
Старый 16.11.2014, 14:03   #4
mital25
Пользователь
 
Регистрация: 06.03.2014
Сообщений: 28
По умолчанию

только как это сделать не пойму
mital25 вне форума Ответить с цитированием
Старый 16.11.2014, 14:33   #5
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,603
По умолчанию

Возможно таким образом

Код:
#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("%d", &x);
        printf("b=");
        scanf("%d", &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;
    }
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 16.11.2014, 15:05   #6
mital25
Пользователь
 
Регистрация: 06.03.2014
Сообщений: 28
По умолчанию

Цитата:
Сообщение от challengerr Посмотреть сообщение
Возможно таким образом
сейчас посмотрим)
.........

к сожалению вообще не выдает результата(
и даже сумму считает не верно
.........

Цитата:
Сообщение от mital25 Посмотреть сообщение
к сожалению вообще не выдает результата(
и даже сумму считает не верно
хотя нет сумму считает правильно
.........

Цитата:
Сообщение от challengerr Посмотреть сообщение
Возможно таким образом
я вас запутал все верно в интервале но в суме проблема(

Последний раз редактировалось Stilet; 16.11.2014 в 18:32.
mital25 вне форума Ответить с цитированием
Старый 16.11.2014, 15:39   #7
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,603
По умолчанию

Учитываете, что по модулю?
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 16.11.2014, 16:05   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Да шож ты суёшь всё в main()? Я, когда, читаю подобные задания, уже в процессе прочтения продумываю прототипы функций, которые будут соответствовать пунктам 1, 2, ..., эн, плюс ещё 2 функции - ввод массива (с клавы или random) и вывод его на консоль.

Поверь мне, уважаемый: такой подход упрощает исполнение задания на порядок!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 16.11.2014, 18:14   #9
mital25
Пользователь
 
Регистрация: 06.03.2014
Сообщений: 28
По умолчанию

Цитата:
Сообщение от challengerr Посмотреть сообщение
Учитываете, что по модулю?
учитываю. сумма выводиться через раз. а вот количество вне интервала вообще не правильно считает

выручайте адепты программирования))а-то повесят меня

Последний раз редактировалось Stilet; 16.11.2014 в 18:36.
mital25 вне форума Ответить с цитированием
Старый 16.11.2014, 18:46   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Переделай прогу с учётом моих рекомендаций. Ну чо за детский сад, в конце-то концов!
А я, пожалуй, пас. Вечер воскресенья, кто бухает, кто по бабам, кто в бане... А я на диване валяюсь, смотрю телек, а на животе у меня спит кот.
Спасайся, глупец! Не всё так страшно, как тебе кажется.



для затравки, п.1:
Код:
int getcount(double* x, int n, double a, double b)
{
  int c = 0, idx;
  for (idx = 0; idx < n; idx++)
    c += (x[idx] < a) && (x[idx] > b) ? 1 : 0;
  return c;
}
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 16.11.2014 в 19:01.
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBasic, проверьте пожалуйста код. Caustic Gluk Помощь студентам 1 15.12.2009 17:43
Проверьте,код пожалуйста! -ushёl- Общие вопросы C/C++ 0 08.12.2009 13:22
С++. Проверьте пожалуйста код Alexandrk8 Помощь студентам 11 10.09.2009 11:45
Проверьте пожалуйста код forumu Помощь студентам 1 27.12.2007 21:49