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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2009, 21:31   #1
savra
search money
Пользователь
 
Регистрация: 12.10.2009
Сообщений: 46
По умолчанию Одномерный массив(С)

Дан массив целых чисел. Диапазон [5;12], элементы задает пользователь. Определить, содержится ли в массиве только одно отрицательное число.

Выдает какю то лабуду, укажите пожалуйста на ошибку
Код:
#include <stdio.h>
#include <conio.h>

void main()
{
clrscr();
int i, s, a[10];

	for(i = 5; i <= 12; i++)
	{
		printf("a[%d]= ",i);
  	scanf("%d", a[i]);
	}

	s = 0;

	for(i = 5; i <= 12; i++)
	{
		if (a[i] < 0)
				s++;
	}
	if (s == 0)
		 printf("Нет отрицательных чисел");
	else
	{
		if (s == 1)
				printf("Одно отрицательное число");

		else
				printf("Несколько отрицательных чисел");
   }

getch();
}
savra вне форума Ответить с цитированием
Старый 12.10.2009, 21:33   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

это работает?
в С помоему нет массивов не с нуля.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.10.2009, 21:35   #3
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
это работает?
в С помоему нет массивов не с нуля.
Никто не мешает начинать использовать массив с 5-го элемента)

2savra
Код:
int i, s, a[10];
используете больше элементов, нежели объявлено
Код:
scanf("%d", a[i]);
в scanf надо передавать адрес элемента, а не сам элемент
Код:
for(i = 5; i <= 12; i++)
так же следует учесть, что в данном случае Вы начинаете индексацию с шестого элемента массива(ведь в Си первый элемент - нулевой)
netrino вне форума Ответить с цитированием
Старый 12.10.2009, 21:55   #4
savra
search money
Пользователь
 
Регистрация: 12.10.2009
Сообщений: 46
По умолчанию

Добавил & перед a[i] сюда scanf("%d", a[i]); и задал a[20] (Я просто сначала подумал раз диапазон [5; 12] соответственно надо a[8]) Вообщем ппц)
И все заработало!
ЗЫ. Просто я болел когда все это объясняли нам)
ЗЫ. Такие ошибки... мне аж стыдно стало...

to netrino
спс большое...
savra вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив (СИ) ManInBlack Помощь студентам 8 08.06.2013 17:43
Одномерный массив Max_Grinyuk Помощь студентам 16 16.12.2009 17:27
С# одномерный массив Gigatrest Помощь студентам 15 31.05.2009 19:08
Одномерный массив. medic357 Общие вопросы C/C++ 1 23.03.2009 19:39