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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2017, 17:17   #1
NO ONE
Новичок
Джуниор
 
Регистрация: 12.12.2017
Сообщений: 1
По умолчанию Не могу понять почему не работает программа на С.

Ребята, помогите, я только учусь программированию на С. И после долгих раздумий, решил попросить помощи. Спасибо! Разъясните, пожалуйста, что здесь неправильно. И как это исправить.

Код:
//дано два одномерных массива A и B. Вычислить одномерный массив С, который содержит элементы в одном экземпляре 
//которые меньше заданного числа и присутствуют в нескольких экземплярах в одном из массивов и отсутствуют в другом

#include <stdio.h>
#include <stdlib.h>

int main() {
	int a[20], *i, b[20], *j, c[20], zadanchislo, *p, *p2, *l, n, m, k, *p3;
	printf("Vvedite kolvo elementov massiva A");
	scanf("%d", &n);
	printf("Vvedite massiv  A");
	for (i = a; i < a + n; i++) {
		printf("a[i]=", i);
		scanf("%d", &i);
	}

	printf("Vvedite kolvo elementov massiva B");
	scanf("%d", &m);
	printf("Vvedite massiv  B");
	for (j = a; j < a + m; j++) {
		printf("b[j]", j);
		scanf("%d", &j);
	}
	printf("Vvedite zadannoe chislo");
	scanf("%d", &zadanchislo);

	for (i = a; i < a + n; i++) {
		if (*i < zadanchislo) {
			for (j = b; j < b + m; j++) {
				if (*j != *i){
					k++;
				}
			}
			if (k == m) {
				*p = *i;
				p++;
			}
		}
	}
	

	for (l = c; l<p; l++) {
		for (p2 = c + 1; p2<p; p2++) {
			if (*p == *p2) {
				p = p - 1;
				for (p3 = p2; p3<l; p3++) {
					*p3 = *(p3 + 1);
				}
			}
		}
	}
}

Последний раз редактировалось Alex11223; 13.12.2017 в 17:20.
NO ONE вне форума Ответить с цитированием
Старый 13.12.2017, 17:21   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А почему вы решили, что что-то неправильно?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 13.12.2017, 17:23   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

1. Кто вас так учил массивы вводить? Вы уже b не туда вводите. Пишите без арифметики указателей:
Код:
for(i = 0; i < n; i++) {
printf("a[%d]=", i);
scanf("%d", &a[i]);
}
2. Почему вы так странно проверяете условие задачи? Меньше заданного в одном массиве, а кол-во в другом? Остальные числа чем провинились?

3. Почему при проверке кол-ва вы проверяете не несколько как по условию, а весь другой массив?

Последний раз редактировалось p51x; 13.12.2017 в 17:27.
p51x на форуме Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу понять почему не работает Valeriy_136 Помощь студентам 2 15.10.2017 08:10
Не могу понять почему не работает функция SeRhy JavaScript, Ajax 0 09.02.2012 17:41
Не могу понять почему не работает микрофон Stilet Компьютерное железо 8 08.10.2010 16:54
Cходящийся ряд (программа по идее должна работать но почему не работает понять не могу) в С++ Vultar Помощь студентам 3 17.12.2009 13:04
Почему не работает...хм....понять не могу! Артур Иваныч Microsoft Office Excel 9 01.12.2009 17:58