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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2017, 22:55   #1
GRUB_666
Пользователь
 
Регистрация: 22.12.2016
Сообщений: 15
По умолчанию Проблемы с языком Си

Вообщем, получил я задание по написанию программы находящей Н - ый член арифметической прогрессии. Вообщем нашел формулу по нахождению и был готов начать. Захожу в DEV - C++, Создаю все переменные и начинаю писать основной экшен. Прошу у пользователя ввод все переменных. То есть это шаг прогрессии, первый член и разумеется Н член.
Произвожу инициализацию ,вроде все отлично, ошибок компилятор не выдает, но при запуске программы после ввода первого значения программа вылетает и все. Вот мой код:

(Это не оконченная версия).


Код:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	
	int An, A1, d, N;
	
	 printf("Please Enter First Element  : \n");
	 scanf("%d", A1);
	  printf("Please Enter Difference size : \n");
	 scanf("%d", d);
	   printf("Please Enter N element : \n");
	 scanf("%d", An);
	  N = A1 + d * An - 1;
      printf("N value = %d", N);
        system ("pause");
    
    
  	return 0;
}
Отладка говорит о не обработанном исключении.

Последний раз редактировалось Вадим Мошев; 24.01.2017 в 23:15.
GRUB_666 вне форума Ответить с цитированием
Старый 24.01.2017, 23:33   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Поставь "&". Ну например в строке:
Код:
scanf("%d", &A1);
ura_111 вне форума Ответить с цитированием
Старый 25.01.2017, 00:03   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,552
По умолчанию

И во всех остальных, где есть scanf
digitalis вне форума Ответить с цитированием
Старый 25.01.2017, 21:07   #4
GRUB_666
Пользователь
 
Регистрация: 22.12.2016
Сообщений: 15
По умолчанию

Спасибо большое.
Однако появилась еще одна проблема ,вообщем в ответе выходят непонятные цифры (N value = 6487620),
хотя по сути все должно быть верно.
(Огромная благодарность всем кто помогает!)

Вот код:

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

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {

int An, A1, d, N;

printf("\aPlease Enter First Element : \n");

scanf("%d",&A1);

printf("\aPlease Enter Difference size : \n");

scanf("%d",&d);

printf("\aPlease Enter N element : \n");

scanf("%d",&An);

N = A1 + d * An - 1;

printf("N value = %d",&A1);

system ("pause");


return 0;
}

Последний раз редактировалось GRUB_666; 25.01.2017 в 21:08. Причина: Забыл показать вывод в консоли(
GRUB_666 вне форума Ответить с цитированием
Старый 25.01.2017, 21:11   #5
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

А что ты "А1" выводишь?
Код:
printf("N value = %d",&A1);
А ты же рассчитал в ручную (контрольный пример) перед тем как писать программу?
ura_111 вне форума Ответить с цитированием
Старый 25.01.2017, 21:28   #6
GRUB_666
Пользователь
 
Регистрация: 22.12.2016
Сообщений: 15
По умолчанию

Извиняюсь за то что отправил сюда этот код (Пытался посмотреть на вывод чего либо другого кроме как N). А вообще формула рабочая. Пользователь задает первый член прогрессии, потом шаг прогрессии и нный член который хочет найти. В конечном итоге идут расчеты по формуле и мы узнаем значение переменной N ,то есть нный член. Конечно может я накосячил и в чем то ошибаюсь ,но вроде все верно.

формула: an = a1 + (n-1)d
GRUB_666 вне форума Ответить с цитированием
Старый 25.01.2017, 21:32   #7
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Убери "&":
Код:
printf("N value = %d",&A1);
ura_111 вне форума Ответить с цитированием
Старый 25.01.2017, 23:45   #8
GRUB_666
Пользователь
 
Регистрация: 22.12.2016
Сообщений: 15
По умолчанию

У меня вроде был такой вариант( вылетало все), но точно не помню ,короче как будет возможнсть сделать ,я обязательно отпишусь, еще раз спасибо за помощь.
GRUB_666 вне форума Ответить с цитированием
Старый 26.01.2017, 10:13   #9
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,552
По умолчанию

Нужно просто запомнить: в scanf переменная, в которую считываем, в параметрах - с амперсендом (&), в printf - без него.
Код:
scanf("%d",&a);
.......................
printf("N value = %d",b)
;
digitalis вне форума Ответить с цитированием
Старый 28.01.2017, 12:46   #10
GRUB_666
Пользователь
 
Регистрация: 22.12.2016
Сообщений: 15
По умолчанию

Спасибо, огромное! Наконец то все заработало. Я вообще и так знал про это ,но вот когда я раньше не ставил амперсенд программа вылетала ,а сейчас все заработало! Спасибо!
GRUB_666 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите определиться с языком DedPerded Общие вопросы по Java, Java SE, Kotlin 3 12.11.2016 21:00
Помощь с языком программирования Dashen`ka Помощь студентам 54 06.07.2015 11:39
Проблемы с языком Андрей Белый Microsoft Office Word 7 31.07.2010 15:58
Каким языком воплотить? Исраил Софт 2 23.11.2009 09:50
Помогите с языком Assembler Kotus Помощь студентам 11 23.11.2007 10:06