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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2016, 22:00   #1
Qodd
Пользователь
 
Регистрация: 30.03.2016
Сообщений: 13
Восклицание Ошибка сегментации на Си

Помогите,пожалуйста с кодом. В общем я стал решать задачу. Вроде уже 10 раз проверил,но ничего не понимаю. При компиляции выходит ошибка сегментации.Суть задачи тут не очень важна,я дума я напортачил с выделением памяти.Объясните,кто знает.Задача:
Цитата:
Вам дана последовательность из n чисел ai. В этой последовательности есть элемент, встречающийся там нечётное количество раз. Найдите его.
Вот сам код:
Код:
#include<stdio.h>

int main(int argc, char* argv[]){
	
	unsigned int odd = 0;
	unsigned int n;
	unsigned int a[n];
	int i;
	n = argv[1];
	for(i = 2;i < n + 3;i++){
		a[i - 2] = argv[i];
	}
	
	for(i = 0;i < n - 1;i++){
		odd = odd^a[i];
	}
	
	printf("%u", odd);
	
	return 0;
}
Знание общих правил заменяет незнание конкретных фактов.
Qodd вне форума Ответить с цитированием
Старый 28.09.2016, 22:47   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Динамическое создание массива - это достаточно типичная задача. Вот набросал тебе шаблон, в котором создаётся такой массив "a" из "n" элементов и пользователь его заполняет вручную. Используя его, доделай программу (что там тебе надо - поиск элемента).

12.jpg

p.s.1: когда будешь перенабирать программу- обращай внимание на комментарии.
p.s.2: что-то не будет получаться - пиши здесь.
ura_111 вне форума Ответить с цитированием
Старый 28.09.2016, 23:16   #3
Qodd
Пользователь
 
Регистрация: 30.03.2016
Сообщений: 13
По умолчанию

И можно у вас тогда спросить, а как организовать получение n и элементов последовательности из файла, под названием input.txt? Просто это тоже важно. Если вам не сложно)
Знание общих правил заменяет незнание конкретных фактов.

Последний раз редактировалось Qodd; 28.09.2016 в 23:29.
Qodd вне форума Ответить с цитированием
Старый 29.09.2016, 06:36   #4
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Делаю тяп-ляп, поэтому хорошенько протестируй...

12.jpg

Обычно люди делают себе проверку корректности открытия файла, я такое не писал. Отсюда предупреждение - проследи чтобы файл был на диске C:/ (обязательно), а сама структура файла такая: первое число - это "n", а последующие - непосредственно элементы вектора (см. следующий рисунок). Следи чтобы количество элементов вектора не было меньше первого числа ("n") с учётом того что счёт начинается с 0-ля.

Вот например:

13.jpg
ura_111 вне форума Ответить с цитированием
Старый 29.09.2016, 17:42   #5
Qodd
Пользователь
 
Регистрация: 30.03.2016
Сообщений: 13
По умолчанию

Спасибо большое, все работает. Вы мне очень помогли
Знание общих правил заменяет незнание конкретных фактов.
Qodd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нарушение доступа(Ошибка сегментации) AnthonyB Общие вопросы C/C++ 1 15.04.2013 02:11
Всё та же ошибка сегментации edw1n Помощь студентам 7 02.03.2013 23:51
Ошибка сегментации (С + MPI) Nelly_S Общие вопросы C/C++ 0 08.11.2012 00:03
Ошибка сегментации srs6270 Общие вопросы C/C++ 16 19.07.2012 11:31
Работа с указателями. Ошибка сегментации. agronomchek Помощь студентам 1 24.08.2010 14:51