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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2012, 16:24   #1
KuPuJIJI
Пользователь
 
Аватар для KuPuJIJI
 
Регистрация: 15.10.2012
Сообщений: 11
Печаль Указатели

Товрищи программисты помогите пожалуйста разобраться с этой задаче и исправить ошибки...
Создайте массив размерностью N. Введите значения элементов массивов с клавиатуры. Затем выведите на экран в обратном порядке значения тех элементов массива, значения которых попадают хотя бы в один из диапазонов: [5, 10], [30, 40], [70, 90].
Вот код:
Код:
#include <stdio.h>
void main()
{
const int N=10;
int i,mas[N], *p,x;
p=&mas[0];
puts ("Enter Elements of Massiv:");
for(i=0;i<N;i++)
scanf("%d", p+i);
for(i=0;i<N;i++)
printf("%d ",*(p+i));
if (x>=5 && x<=10 || x>=30 && x<=40 || x>=70 && x<=90)
	printf("%5d ",*(p+i));
else
	printf("%d ",*(p+i));
}
код работать что то не хочет.... помгите составить нормальный код (на языке С ).... Буду очень благодарен!
ICQ-632296180

Последний раз редактировалось Stilet; 03.11.2012 в 10:04.
KuPuJIJI вне форума Ответить с цитированием
Старый 02.11.2012, 17:14   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Вы в переменную x не заносите никакого значения. И код у Вас выводит значения что на ветке if, что на ветке else.
Abstraction вне форума Ответить с цитированием
Старый 03.11.2012, 09:19   #3
KuPuJIJI
Пользователь
 
Аватар для KuPuJIJI
 
Регистрация: 15.10.2012
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Вы в переменную x не заносите никакого значения. И код у Вас выводит значения что на ветке if, что на ветке else.
что то немного не понял вас походу....
ICQ-632296180
KuPuJIJI вне форума Ответить с цитированием
Старый 03.11.2012, 10:06   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Смотри внимательно:
Код:
int i,mas[N], *p,x; <- Вот мы обьявляем Х
p=&mas[0];
puts ("Enter Elements of Massiv:");
for(i=0;i<N;i++)
scanf("%d", p+i);
for(i=0;i<N;i++)
printf("%d ",*(p+i));
if (x>=5 && x<=10 || x>=30 && x<=40 || x>=70 && x<=90) <- А вот мы хотим сравнивать Х,
 который начиная от обьявления до сюда не получил никакого  значения
Ты в эту переменку ничего не вводишь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.11.2012, 12:36   #5
KuPuJIJI
Пользователь
 
Аватар для KuPuJIJI
 
Регистрация: 15.10.2012
Сообщений: 11
По умолчанию

Вот я присвоил значение Х, но чегот оно мне не хочет выводить элементы интервалов в обратно порядке
Код:
for(i=0;i<N;i++)
{
	x=*(p+i);
        
if (x>=5 && x<=10 || x>=30 && x<=40 || x>=70 && x<=90)
	printf("%5d ",*(p+i));
else
	printf("%d ",*(p+i));
        *p++;
}
}
ICQ-632296180

Последний раз редактировалось Stilet; 03.11.2012 в 13:13.
KuPuJIJI вне форума Ответить с цитированием
Старый 03.11.2012, 13:13   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что выводит?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.11.2012, 13:13   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Код:
for(i = N - 1; i >= 0; --i) {
    if (p[i] >= 5 && p[i] <= 10 || p[i] >= 30 && p[i] <= 40 || p[i] >= 70 && p[i] <= 90)
        printf("%5d ", p[i]);
}
Попробуйте так.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 03.11.2012, 13:38   #8
KuPuJIJI
Пользователь
 
Аватар для KuPuJIJI
 
Регистрация: 15.10.2012
Сообщений: 11
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Код:
for(i = N - 1; i >= 0; --i) {
    if (p[i] >= 5 && p[i] <= 10 || p[i] >= 30 && p[i] <= 40 || p[i] >= 70 && p[i] <= 90)
        printf("%5d ", p[i]);
}
Попробуйте так.
Всем большое спасибо за помощь.
ICQ-632296180
KuPuJIJI вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Указатели в С++ kdteam Помощь студентам 2 12.11.2010 20:13
C++ Указатели KLOP Помощь студентам 4 06.03.2010 20:27
C++ (указатели). slim>>> Помощь студентам 8 03.03.2010 19:39
Указатели С++ MarihuanaP Помощь студентам 1 09.02.2010 17:06
[C] массивы, указатели, двойные указатели. Iggel Общие вопросы C/C++ 5 05.05.2009 12:39