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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2014, 22:46   #1
Pug_from_Mordor
Пользователь
 
Аватар для Pug_from_Mordor
 
Регистрация: 09.11.2014
Сообщений: 40
Сообщение Помогите понять как исправить ошибку в программе на СИ.

В простой программе ввода и вывода целочисленного массива компилятор пишет, что я не объявлял переменную, но я то её объявил.
Код:
#include <stdio.h>
#include<locale.h>
 
int main(void) 
{
	int n;
	int a[n];
 
	printf("Введите размер массива: ");
	scanf("%d", &n);
 
	for (int i=0; i<n; ++i) //вот тут я объявил переменную i
	{
	   printf("a[%d]->", i);
	   scanf("%d", &a[i]);
	}   
 
	printf("\nВсе элементы массива: ");

	for (int j=0; j<i; ++j) /*вот в этой строке компилятор пишет : 
   C:\Users\Nikolay\Desktop\Программирование\test\main.c(20): error #2048: Undeclared identifier 'i'.*/ 
	   printf("%d   ", a[j]);
 
	printf("\n");   
 
	return 0;
}

Последний раз редактировалось Pug_from_Mordor; 19.12.2014 в 22:50.
Pug_from_Mordor вне форума Ответить с цитированием
Старый 19.12.2014, 23:08   #2
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

разные области видимости. выносите объявление i из for'a наружу.
Smogg вне форума Ответить с цитированием
Старый 19.12.2014, 23:24   #3
Pug_from_Mordor
Пользователь
 
Аватар для Pug_from_Mordor
 
Регистрация: 09.11.2014
Сообщений: 40
По умолчанию

Цитата:
Сообщение от Smogg Посмотреть сообщение
разные области видимости. выносите объявление i из for'a наружу.
То есть в структурах повторения for управляющая переменная видна и может использоваться только в цикле, в котором она была объявлена? То есть, чтобы переменная была доступна на протяжении всей функции main(), нужно объявить управляющую переменную вне структуры for. Думаю, тогда уж удобней будет while использовать, так грамотней получится.
Кстати, кто-нибудь может ответить: есть ли какая-нибудь разница в потреблении ресурсов и нагрузке на компьютер между структурами for и while? Какую из них выгодней использовать?
Pug_from_Mordor вне форума Ответить с цитированием
Старый 20.12.2014, 03:32   #4
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

Цитата:
Сообщение от Pug_from_Mordor Посмотреть сообщение
Кстати, кто-нибудь может ответить: есть ли какая-нибудь разница в потреблении ресурсов и нагрузке на компьютер между структурами for и while? Какую из них выгодней использовать?
смотря как их использовать. чем меньше операций, тем выгодней.
на булевое условие для вайла можно ох как чего накрутить.
Smogg вне форума Ответить с цитированием
Старый 20.12.2014, 05:51   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Меня больше смущает объявление массива "a", размер которого равен значению "n", причем "n" может быть равно чему угодно.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 20.12.2014, 16:51   #6
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Меня больше смущает объявление массива "a", размер которого равен значению "n", причем "n" может быть равно чему угодно.
Согласен... Компилятор интересно на это обратил внимание..
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибку в программе!! ssergey100 Windows 8 25.08.2014 12:10
Помогите исправить ошибку в программе(С++) DimaR123 Visual C++ 3 04.03.2014 21:19
Обращение к эелементам двумерного массива через указатели на С ++ помогите понять как исправить ошибку серг Общие вопросы C/C++ 3 09.08.2010 12:37
ПОМОГИТЕ исправить ошибку в программе SYL@R Помощь студентам 1 07.12.2008 19:42